<!DOCTYPE html>
<html lang="zh-CN" style="height: 100%">

<head>
  <meta charset="utf-8">
</head>

<body style="height: 100%; margin: 0">
  <div id="container" style="height: 100%"></div>


  <script type="text/javascript">
    !function (t, e) { "object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define.amd ? define(["exports"], e) : e((t = "undefined" != typeof globalThis ? globalThis : t || self).echarts = {}) }(this, function (t) { "use strict"; var w = function (t, e) { return (w = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? function (t, e) { t.__proto__ = e } : function (t, e) { for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]) }))(t, e) }; function u(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Class extends value " + String(e) + " is not a constructor or null"); function n() { this.constructor = t } w(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n) } function b() { this.firefox = !1, this.ie = !1, this.edge = !1, this.newEdge = !1, this.weChat = !1 } var p = new function () { this.browser = new b, this.node = !1, this.wxa = !1, this.worker = !1, this.svgSupported = !1, this.touchEventsSupported = !1, this.pointerEventsSupported = !1, this.domSupported = !1, this.transformSupported = !1, this.transform3dSupported = !1, this.hasGlobalWindow = "undefined" != typeof window }; "object" == typeof wx && "function" == typeof wx.getSystemInfoSync ? (p.wxa = !0, p.touchEventsSupported = !0) : "undefined" == typeof document && "undefined" != typeof self ? p.worker = !0 : "undefined" == typeof navigator ? (p.node = !0, p.svgSupported = !0) : (J = navigator.userAgent, oe = (Ht = p).browser, rt = J.match(/Firefox\/([\d.]+)/), Y = J.match(/MSIE\s([\d.]+)/) || J.match(/Trident\/.+?rv:(([\d.]+))/), Q = J.match(/Edge?\/([\d.]+)/), J = /micromessenger/i.test(J), rt && (oe.firefox = !0, oe.version = rt[1]), Y && (oe.ie = !0, oe.version = Y[1]), Q && (oe.edge = !0, oe.version = Q[1], oe.newEdge = 18 < +Q[1].split(".")[0]), J && (oe.weChat = !0), Ht.svgSupported = "undefined" != typeof SVGRect, Ht.touchEventsSupported = "ontouchstart" in window && !oe.ie && !oe.edge, Ht.pointerEventsSupported = "onpointerdown" in window && (oe.edge || oe.ie && 11 <= +oe.version), Ht.domSupported = "undefined" != typeof document, rt = document.documentElement.style, Ht.transform3dSupported = (oe.ie && "transition" in rt || oe.edge || "WebKitCSSMatrix" in window && "m11" in new WebKitCSSMatrix || "MozPerspective" in rt) && !("OTransition" in rt), Ht.transformSupported = Ht.transform3dSupported || oe.ie && 9 <= +oe.version); var j = "12px sans-serif"; var T, C, I = function (t) { var e = {}; if ("undefined" != typeof JSON) for (var n = 0; n < t.length; n++) { var i = String.fromCharCode(n + 32), r = (t.charCodeAt(n) - 20) / 100; e[i] = r } return e }("007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N"), W = { createCanvas: function () { return "undefined" != typeof document && document.createElement("canvas") }, measureText: function (t, e) { if (T || (n = W.createCanvas(), T = n && n.getContext("2d")), T) return C !== e && (C = T.font = e || j), T.measureText(t); t = t || ""; var n = /(\d+)px/.exec(e = e || j), i = n && +n[1] || 12, r = 0; if (0 <= e.indexOf("mono")) r = i * t.length; else for (var o = 0; o < t.length; o++) { var a = I[t[o]]; r += null == a ? i : a * i } return { width: r } }, loadImage: function (t, e, n) { var i = new Image; return i.onload = e, i.onerror = n, i.src = t, i } }; function A(t) { for (var e in W) t[e] && (W[e] = t[e]) } var L = lt(["Function", "RegExp", "Date", "Error", "CanvasGradient", "CanvasPattern", "Image", "Canvas"], function (t, e) { return t["[object " + e + "]"] = !0, t }, {}), U = lt(["Int8", "Uint8", "Uint8Clamped", "Int16", "Uint16", "Int32", "Uint32", "Float32", "Float64"], function (t, e) { return t["[object " + e + "Array]"] = !0, t }, {}), X = Object.prototype.toString, Y = Array.prototype, q = Y.forEach, Z = Y.filter, K = Y.slice, $ = Y.map, Q = function () { }.constructor, J = Q ? Q.prototype : null, tt = "__proto__", et = 2311; function nt() { return et++ } function it() { for (var t = [], e = 0; e < arguments.length; e++)t[e] = arguments[e]; "undefined" != typeof console && console.error.apply(console, t) } function y(t) { if (null == t || "object" != typeof t) return t; var e = t, n = X.call(t); if ("[object Array]" === n) { if (!It(t)) for (var e = [], i = 0, r = t.length; i < r; i++)e[i] = y(t[i]) } else if (U[n]) { if (!It(t)) { var o = t.constructor; if (o.from) e = o.from(t); else for (e = new o(t.length), i = 0, r = t.length; i < r; i++)e[i] = t[i] } } else if (!L[n] && !It(t) && !yt(t)) for (var a in e = {}, t) t.hasOwnProperty(a) && a !== tt && (e[a] = y(t[a])); return e } function d(t, e, n) { if (!R(e) || !R(t)) return n ? y(e) : t; for (var i in e) { var r, o; e.hasOwnProperty(i) && i !== tt && (r = t[i], !R(o = e[i]) || !R(r) || V(o) || V(r) || yt(o) || yt(r) || ft(o) || ft(r) || It(o) || It(r) ? !n && i in t || (t[i] = y(e[i])) : d(r, o, n)) } return t } function P(t, e) { if (Object.assign) Object.assign(t, e); else for (var n in e) e.hasOwnProperty(n) && n !== tt && (t[n] = e[n]); return t } function B(t, e, n) { for (var i = D(e), r = 0; r < i.length; r++) { var o = i[r]; (n ? null != e[o] : null == t[o]) && (t[o] = e[o]) } return t } var rt = W.createCanvas; function k(t, e) { if (t) { if (t.indexOf) return t.indexOf(e); for (var n = 0, i = t.length; n < i; n++)if (t[n] === e) return n } return -1 } function ot(t, e) { var n, i = t.prototype; function r() { } for (n in r.prototype = e.prototype, t.prototype = new r, i) i.hasOwnProperty(n) && (t.prototype[n] = i[n]); (t.prototype.constructor = t).superClass = e } function at(t, e, n) { if (t = "prototype" in t ? t.prototype : t, e = "prototype" in e ? e.prototype : e, Object.getOwnPropertyNames) for (var i = Object.getOwnPropertyNames(e), r = 0; r < i.length; r++) { var o = i[r]; "constructor" !== o && (n ? null != e[o] : null == t[o]) && (t[o] = e[o]) } else B(t, e, n) } function st(t) { return !!t && "string" != typeof t && "number" == typeof t.length } function O(t, e, n) { if (t && e) if (t.forEach && t.forEach === q) t.forEach(e, n); else if (t.length === +t.length) for (var i = 0, r = t.length; i < r; i++)e.call(n, t[i], i, t); else for (var o in t) t.hasOwnProperty(o) && e.call(n, t[o], o, t) } function F(t, e, n) { if (!t) return []; if (!e) return St(t); if (t.map && t.map === $) return t.map(e, n); for (var i = [], r = 0, o = t.length; r < o; r++)i.push(e.call(n, t[r], r, t)); return i } function lt(t, e, n, i) { if (t && e) { for (var r = 0, o = t.length; r < o; r++)n = e.call(i, n, t[r], r, t); return n } } function ut(t, e, n) { if (!t) return []; if (!e) return St(t); if (t.filter && t.filter === Z) return t.filter(e, n); for (var i = [], r = 0, o = t.length; r < o; r++)e.call(n, t[r], r, t) && i.push(t[r]); return i } function D(t) { if (!t) return []; if (Object.keys) return Object.keys(t); var e, n = []; for (e in t) t.hasOwnProperty(e) && n.push(e); return n } var ht = J && S(J.bind) ? J.call.bind(J.bind) : function (t, e) { for (var n = [], i = 2; i < arguments.length; i++)n[i - 2] = arguments[i]; return function () { return t.apply(e, n.concat(K.call(arguments))) } }; function ct(t) { for (var e = [], n = 1; n < arguments.length; n++)e[n - 1] = arguments[n]; return function () { return t.apply(this, e.concat(K.call(arguments))) } } function V(t) { return Array.isArray ? Array.isArray(t) : "[object Array]" === X.call(t) } function S(t) { return "function" == typeof t } function H(t) { return "string" == typeof t } function pt(t) { return "[object String]" === X.call(t) } function dt(t) { return "number" == typeof t } function R(t) { var e = typeof t; return "function" == e || !!t && "object" == e } function ft(t) { return !!L[X.call(t)] } function gt(t) { return !!U[X.call(t)] } function yt(t) { return "object" == typeof t && "number" == typeof t.nodeType && "object" == typeof t.ownerDocument } function mt(t) { return null != t.colorStops } function vt(t) { return null != t.image } function _t(t) { return "[object RegExp]" === X.call(t) } function xt(t) { return t != t } function wt() { for (var t = [], e = 0; e < arguments.length; e++)t[e] = arguments[e]; for (var n = 0, i = t.length; n < i; n++)if (null != t[n]) return t[n] } function N(t, e) { return null != t ? t : e } function bt(t, e, n) { return null != t ? t : null != e ? e : n } function St(t) { for (var e = [], n = 1; n < arguments.length; n++)e[n - 1] = arguments[n]; return K.apply(t, e) } function Mt(t) { var e; return "number" == typeof t ? [t, t, t, t] : 2 === (e = t.length) ? [t[0], t[1], t[0], t[1]] : 3 === e ? [t[0], t[1], t[2], t[1]] : t } function Tt(t, e) { if (!t) throw new Error(e) } function Ct(t) { return null == t ? null : "function" == typeof t.trim ? t.trim() : t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "") } var kt = "__ec_primitive__"; function Dt(t) { t[kt] = !0 } function It(t) { return t[kt] } Pt.prototype.delete = function (t) { var e = this.has(t); return e && delete this.data[t], e }, Pt.prototype.has = function (t) { return this.data.hasOwnProperty(t) }, Pt.prototype.get = function (t) { return this.data[t] }, Pt.prototype.set = function (t, e) { return this.data[t] = e, this }, Pt.prototype.keys = function () { return D(this.data) }, Pt.prototype.forEach = function (t) { var e, n = this.data; for (e in n) n.hasOwnProperty(e) && t(n[e], e) }; var At = Pt, Lt = "function" == typeof Map; function Pt() { this.data = {} } Rt.prototype.hasKey = function (t) { return this.data.has(t) }, Rt.prototype.get = function (t) { return this.data.get(t) }, Rt.prototype.set = function (t, e) { return this.data.set(t, e), e }, Rt.prototype.each = function (n, i) { this.data.forEach(function (t, e) { n.call(i, t, e) }) }, Rt.prototype.keys = function () { var t = this.data.keys(); return Lt ? Array.from(t) : t }, Rt.prototype.removeKey = function (t) { this.data.delete(t) }; var Ot = Rt; function Rt(t) { var n = V(t), i = (this.data = new (Lt ? Map : At), this); function e(t, e) { n ? i.set(t, e) : i.set(e, t) } t instanceof Rt ? t.each(e) : t && O(t, e) } function E(t) { return new Ot(t) } function Nt(t, e) { for (var n = new t.constructor(t.length + e.length), i = 0; i < t.length; i++)n[i] = t[i]; for (var r = t.length, i = 0; i < e.length; i++)n[i + r] = e[i]; return n } function Et(t, e) { var n, t = Object.create ? Object.create(t) : ((n = function () { }).prototype = t, new n); return e && P(t, e), t } function zt(t) { t = t.style; t.webkitUserSelect = "none", t.userSelect = "none", t.webkitTapHighlightColor = "rgba(0,0,0,0)", t["-webkit-touch-callout"] = "none" } function Bt(t, e) { return t.hasOwnProperty(e) } function Ft() { } var Vt = 180 / Math.PI, Ht = Object.freeze({ __proto__: null, HashMap: Ot, RADIAN_TO_DEGREE: Vt, assert: Tt, bind: ht, clone: y, concatArray: Nt, createCanvas: rt, createHashMap: E, createObject: Et, curry: ct, defaults: B, disableUserSelect: zt, each: O, eqNaN: xt, extend: P, filter: ut, find: function (t, e, n) { if (t && e) for (var i = 0, r = t.length; i < r; i++)if (e.call(n, t[i], i, t)) return t[i] }, guid: nt, hasOwn: Bt, indexOf: k, inherits: ot, isArray: V, isArrayLike: st, isBuiltInObject: ft, isDom: yt, isFunction: S, isGradientObject: mt, isImagePatternObject: vt, isNumber: dt, isObject: R, isPrimitive: It, isRegExp: _t, isString: H, isStringSafe: pt, isTypedArray: gt, keys: D, logError: it, map: F, merge: d, mergeAll: function (t, e) { for (var n = t[0], i = 1, r = t.length; i < r; i++)n = d(n, t[i], e); return n }, mixin: at, noop: Ft, normalizeCssArray: Mt, reduce: lt, retrieve: wt, retrieve2: N, retrieve3: bt, setAsPrimitive: Dt, slice: St, trim: Ct }); function Wt(t, e) { return [t = null == t ? 0 : t, e = null == e ? 0 : e] } function Gt(t) { return [t[0], t[1]] } function Ut(t, e, n) { return t[0] = e[0] + n[0], t[1] = e[1] + n[1], t } function Xt(t, e, n) { return t[0] = e[0] - n[0], t[1] = e[1] - n[1], t } function Yt(t) { return Math.sqrt(qt(t)) } function qt(t) { return t[0] * t[0] + t[1] * t[1] } function Zt(t, e, n) { return t[0] = e[0] * n, t[1] = e[1] * n, t } function jt(t, e) { var n = Yt(e); return 0 === n ? (t[0] = 0, t[1] = 0) : (t[0] = e[0] / n, t[1] = e[1] / n), t } function Kt(t, e) { return Math.sqrt((t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1])) } var $t = Kt; function Qt(t, e) { return (t[0] - e[0]) * (t[0] - e[0]) + (t[1] - e[1]) * (t[1] - e[1]) } var Jt = Qt; function te(t, e, n, i) { return t[0] = e[0] + i * (n[0] - e[0]), t[1] = e[1] + i * (n[1] - e[1]), t } function ee(t, e, n) { var i = e[0], e = e[1]; return t[0] = n[0] * i + n[2] * e + n[4], t[1] = n[1] * i + n[3] * e + n[5], t } function ne(t, e, n) { return t[0] = Math.min(e[0], n[0]), t[1] = Math.min(e[1], n[1]), t } function ie(t, e, n) { return t[0] = Math.max(e[0], n[0]), t[1] = Math.max(e[1], n[1]), t } function re(t, e) { this.target = t, this.topTarget = e && e.topTarget } var oe = Object.freeze({ __proto__: null, add: Ut, applyTransform: ee, clone: Gt, copy: function (t, e) { return t[0] = e[0], t[1] = e[1], t }, create: Wt, dist: $t, distSquare: Jt, distance: Kt, distanceSquare: Qt, div: function (t, e, n) { return t[0] = e[0] / n[0], t[1] = e[1] / n[1], t }, dot: function (t, e) { return t[0] * e[0] + t[1] * e[1] }, len: Yt, lenSquare: qt, length: Yt, lengthSquare: qt, lerp: te, max: ie, min: ne, mul: function (t, e, n) { return t[0] = e[0] * n[0], t[1] = e[1] * n[1], t }, negate: function (t, e) { return t[0] = -e[0], t[1] = -e[1], t }, normalize: jt, scale: Zt, scaleAndAdd: function (t, e, n, i) { return t[0] = e[0] + n[0] * i, t[1] = e[1] + n[1] * i, t }, set: function (t, e, n) { return t[0] = e, t[1] = n, t }, sub: Xt }), ae = (se.prototype._dragStart = function (t) { for (var e = t.target; e && !e.draggable;)e = e.parent || e.__hostTarget; e && ((this._draggingTarget = e).dragging = !0, this._x = t.offsetX, this._y = t.offsetY, this.handler.dispatchToElement(new re(e, t), "dragstart", t.event)) }, se.prototype._drag = function (t) { var e, n, i, r, o = this._draggingTarget; o && (e = t.offsetX, n = t.offsetY, i = e - this._x, r = n - this._y, this._x = e, this._y = n, o.drift(i, r, t), this.handler.dispatchToElement(new re(o, t), "drag", t.event), i = this.handler.findHover(e, n, o).target, r = this._dropTarget, o !== (this._dropTarget = i)) && (r && i !== r && this.handler.dispatchToElement(new re(r, t), "dragleave", t.event), i) && i !== r && this.handler.dispatchToElement(new re(i, t), "dragenter", t.event) }, se.prototype._dragEnd = function (t) { var e = this._draggingTarget; e && (e.dragging = !1), this.handler.dispatchToElement(new re(e, t), "dragend", t.event), this._dropTarget && this.handler.dispatchToElement(new re(this._dropTarget, t), "drop", t.event), this._draggingTarget = null, this._dropTarget = null }, se); function se(t) { (this.handler = t).on("mousedown", this._dragStart, this), t.on("mousemove", this._drag, this), t.on("mouseup", this._dragEnd, this) } ue.prototype.on = function (t, e, n, i) { this._$handlers || (this._$handlers = {}); var r = this._$handlers; if ("function" == typeof e && (i = n, n = e, e = null), n && t) { var o = this._$eventProcessor; null != e && o && o.normalizeQuery && (e = o.normalizeQuery(e)), r[t] || (r[t] = []); for (var a = 0; a < r[t].length; a++)if (r[t][a].h === n) return this; o = { h: n, query: e, ctx: i || this, callAtLast: n.zrEventfulCallAtLast }, e = r[t].length - 1, i = r[t][e]; i && i.callAtLast ? r[t].splice(e, 0, o) : r[t].push(o) } return this }, ue.prototype.isSilent = function (t) { var e = this._$handlers; return !e || !e[t] || !e[t].length }, ue.prototype.off = function (t, e) { var n = this._$handlers; if (n) if (t) if (e) { if (n[t]) { for (var i = [], r = 0, o = n[t].length; r < o; r++)n[t][r].h !== e && i.push(n[t][r]); n[t] = i } n[t] && 0 === n[t].length && delete n[t] } else delete n[t]; else this._$handlers = {}; return this }, ue.prototype.trigger = function (t) { for (var e = [], n = 1; n < arguments.length; n++)e[n - 1] = arguments[n]; if (this._$handlers) { var i = this._$handlers[t], r = this._$eventProcessor; if (i) for (var o = e.length, a = i.length, s = 0; s < a; s++) { var l = i[s]; if (!r || !r.filter || null == l.query || r.filter(t, l.query)) switch (o) { case 0: l.h.call(l.ctx); break; case 1: l.h.call(l.ctx, e[0]); break; case 2: l.h.call(l.ctx, e[0], e[1]); break; default: l.h.apply(l.ctx, e) } } r && r.afterTrigger && r.afterTrigger(t) } return this }, ue.prototype.triggerWithContext = function (t) { for (var e = [], n = 1; n < arguments.length; n++)e[n - 1] = arguments[n]; if (this._$handlers) { var i = this._$handlers[t], r = this._$eventProcessor; if (i) for (var o = e.length, a = e[o - 1], s = i.length, l = 0; l < s; l++) { var u = i[l]; if (!r || !r.filter || null == u.query || r.filter(t, u.query)) switch (o) { case 0: u.h.call(a); break; case 1: u.h.call(a, e[0]); break; case 2: u.h.call(a, e[0], e[1]); break; default: u.h.apply(a, e.slice(1, o - 1)) } } r && r.afterTrigger && r.afterTrigger(t) } return this }; var le = ue; function ue(t) { t && (this._$eventProcessor = t) } var he = Math.log(2); function ce(t, e, n, i, r, o) { var a, s = i + "-" + r, l = t.length; if (o.hasOwnProperty(s)) return o[s]; if (1 === e) return a = Math.round(Math.log((1 << l) - 1 & ~r) / he), t[n][a]; for (var u = i | 1 << n, h = n + 1; i & 1 << h;)h++; for (var c = 0, p = 0, d = 0; p < l; p++) { var f = 1 << p; f & r || (c += (d % 2 ? -1 : 1) * t[n][p] * ce(t, e - 1, h, u, r | f, o), d++) } return o[s] = c } function pe(t, e) { var n = [[t[0], t[1], 1, 0, 0, 0, -e[0] * t[0], -e[0] * t[1]], [0, 0, 0, t[0], t[1], 1, -e[1] * t[0], -e[1] * t[1]], [t[2], t[3], 1, 0, 0, 0, -e[2] * t[2], -e[2] * t[3]], [0, 0, 0, t[2], t[3], 1, -e[3] * t[2], -e[3] * t[3]], [t[4], t[5], 1, 0, 0, 0, -e[4] * t[4], -e[4] * t[5]], [0, 0, 0, t[4], t[5], 1, -e[5] * t[4], -e[5] * t[5]], [t[6], t[7], 1, 0, 0, 0, -e[6] * t[6], -e[6] * t[7]], [0, 0, 0, t[6], t[7], 1, -e[7] * t[6], -e[7] * t[7]]], i = {}, r = ce(n, 8, 0, 0, 0, i); if (0 !== r) { for (var o = [], a = 0; a < 8; a++)for (var s = 0; s < 8; s++)null == o[s] && (o[s] = 0), o[s] += ((a + s) % 2 ? -1 : 1) * ce(n, 7, 0 === a ? 1 : 0, 1 << a, 1 << s, i) / r * e[a]; return function (t, e, n) { var i = e * o[6] + n * o[7] + 1; t[0] = (e * o[0] + n * o[1] + o[2]) / i, t[1] = (e * o[3] + n * o[4] + o[5]) / i } } } var de = "___zrEVENTSAVED"; function fe(t, e, n, i, r) { if (e.getBoundingClientRect && p.domSupported && !ge(e)) { var o = e[de] || (e[de] = {}), e = function (t, e, n) { for (var i = n ? "invTrans" : "trans", r = e[i], o = e.srcCoords, a = [], s = [], l = !0, u = 0; u < 4; u++) { var h = t[u].getBoundingClientRect(), c = 2 * u, p = h.left, h = h.top; a.push(p, h), l = l && o && p === o[c] && h === o[1 + c], s.push(t[u].offsetLeft, t[u].offsetTop) } return l && r ? r : (e.srcCoords = a, e[i] = n ? pe(s, a) : pe(a, s)) }(function (t, e) { var n = e.markers; if (!n) { n = e.markers = []; for (var i = ["left", "right"], r = ["top", "bottom"], o = 0; o < 4; o++) { var a = document.createElement("div"), s = o % 2, l = (o >> 1) % 2; a.style.cssText = ["position: absolute", "visibility: hidden", "padding: 0", "margin: 0", "border-width: 0", "user-select: none", "width:0", "height:0", i[s] + ":0", r[l] + ":0", i[1 - s] + ":auto", r[1 - l] + ":auto", ""].join("!important;"), t.appendChild(a), n.push(a) } } return n }(e, o), o, r); if (e) return e(t, n, i), 1 } } function ge(t) { return "CANVAS" === t.nodeName.toUpperCase() } var ye = /([&<>"'])/g, me = { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;" }; function ve(t) { return null == t ? "" : (t + "").replace(ye, function (t, e) { return me[e] }) } var _e = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, xe = [], we = p.browser.firefox && +p.browser.version.split(".")[0] < 39; function be(t, e, n, i) { return n = n || {}, i ? Se(t, e, n) : we && null != e.layerX && e.layerX !== e.offsetX ? (n.zrX = e.layerX, n.zrY = e.layerY) : null != e.offsetX ? (n.zrX = e.offsetX, n.zrY = e.offsetY) : Se(t, e, n), n } function Se(t, e, n) { if (p.domSupported && t.getBoundingClientRect) { var i, r = e.clientX, e = e.clientY; if (ge(t)) return i = t.getBoundingClientRect(), n.zrX = r - i.left, n.zrY = e - i.top; if (fe(xe, t, r, e)) return n.zrX = xe[0], n.zrY = xe[1] } n.zrX = n.zrY = 0 } function Me(t) { return t || window.event } function Te(t, e, n) { var i; return null == (e = Me(e)).zrX && ((i = e.type) && 0 <= i.indexOf("touch") ? (i = ("touchend" !== i ? e.targetTouches : e.changedTouches)[0]) && be(t, i, e, n) : (be(t, e, e, n), t = (t = (i = e).wheelDelta) || (n = i.deltaX, i = i.deltaY, null == n || null == i ? t : 3 * (0 !== i ? Math.abs(i) : Math.abs(n)) * (0 < i || !(i < 0) && 0 < n ? -1 : 1)), e.zrDelta = t ? t / 120 : -(e.detail || 0) / 3), i = e.button, null == e.which && void 0 !== i && _e.test(e.type)) && (e.which = 1 & i ? 1 : 2 & i ? 3 : 4 & i ? 2 : 0), e } var Ce = function (t) { t.preventDefault(), t.stopPropagation(), t.cancelBubble = !0 }, ke = (De.prototype.recognize = function (t, e, n) { return this._doTrack(t, e, n), this._recognize(t) }, De.prototype.clear = function () { return this._track.length = 0, this }, De.prototype._doTrack = function (t, e, n) { var i = t.touches; if (i) { for (var r = { points: [], touches: [], target: e, event: t }, o = 0, a = i.length; o < a; o++) { var s = i[o], l = be(n, s, {}); r.points.push([l.zrX, l.zrY]), r.touches.push(s) } this._track.push(r) } }, De.prototype._recognize = function (t) { for (var e in Ae) if (Ae.hasOwnProperty(e)) { e = Ae[e](this._track, t); if (e) return e } }, De); function De() { this._track = [] } function Ie(t) { var e = t[1][0] - t[0][0], t = t[1][1] - t[0][1]; return Math.sqrt(e * e + t * t) } var Ae = { pinch: function (t, e) { var n = t.length; if (n) { var i = (t[n - 1] || {}).points, n = (t[n - 2] || {}).points || i; if (n && 1 < n.length && i && 1 < i.length) return n = Ie(i) / Ie(n), isFinite(n) || (n = 1), e.pinchScale = n, n = [(i[0][0] + i[1][0]) / 2, (i[0][1] + i[1][1]) / 2], e.pinchX = n[0], e.pinchY = n[1], { type: "pinch", target: t[0].target, event: e } } } }; function Le() { return [1, 0, 0, 1, 0, 0] } function Pe(t) { return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 1, t[4] = 0, t[5] = 0, t } function Oe(t, e) { return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t[4] = e[4], t[5] = e[5], t } function Re(t, e, n) { var i = e[0] * n[0] + e[2] * n[1], r = e[1] * n[0] + e[3] * n[1], o = e[0] * n[2] + e[2] * n[3], a = e[1] * n[2] + e[3] * n[3], s = e[0] * n[4] + e[2] * n[5] + e[4], n = e[1] * n[4] + e[3] * n[5] + e[5]; return t[0] = i, t[1] = r, t[2] = o, t[3] = a, t[4] = s, t[5] = n, t } function Ne(t, e, n) { return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t[4] = e[4] + n[0], t[5] = e[5] + n[1], t } function Ee(t, e, n) { var i = e[0], r = e[2], o = e[4], a = e[1], s = e[3], e = e[5], l = Math.sin(n), n = Math.cos(n); return t[0] = i * n + a * l, t[1] = -i * l + a * n, t[2] = r * n + s * l, t[3] = -r * l + n * s, t[4] = n * o + l * e, t[5] = n * e - l * o, t } function ze(t, e, n) { var i = n[0], n = n[1]; return t[0] = e[0] * i, t[1] = e[1] * n, t[2] = e[2] * i, t[3] = e[3] * n, t[4] = e[4] * i, t[5] = e[5] * n, t } function Be(t, e) { var n = e[0], i = e[2], r = e[4], o = e[1], a = e[3], e = e[5], s = n * a - o * i; return s ? (t[0] = a * (s = 1 / s), t[1] = -o * s, t[2] = -i * s, t[3] = n * s, t[4] = (i * e - a * r) * s, t[5] = (o * r - n * e) * s, t) : null } var Fe = Object.freeze({ __proto__: null, clone: function (t) { var e = Le(); return Oe(e, t), e }, copy: Oe, create: Le, identity: Pe, invert: Be, mul: Re, rotate: Ee, scale: ze, translate: Ne }), M = (e.prototype.copy = function (t) { return this.x = t.x, this.y = t.y, this }, e.prototype.clone = function () { return new e(this.x, this.y) }, e.prototype.set = function (t, e) { return this.x = t, this.y = e, this }, e.prototype.equal = function (t) { return t.x === this.x && t.y === this.y }, e.prototype.add = function (t) { return this.x += t.x, this.y += t.y, this }, e.prototype.scale = function (t) { this.x *= t, this.y *= t }, e.prototype.scaleAndAdd = function (t, e) { this.x += t.x * e, this.y += t.y * e }, e.prototype.sub = function (t) { return this.x -= t.x, this.y -= t.y, this }, e.prototype.dot = function (t) { return this.x * t.x + this.y * t.y }, e.prototype.len = function () { return Math.sqrt(this.x * this.x + this.y * this.y) }, e.prototype.lenSquare = function () { return this.x * this.x + this.y * this.y }, e.prototype.normalize = function () { var t = this.len(); return this.x /= t, this.y /= t, this }, e.prototype.distance = function (t) { var e = this.x - t.x, t = this.y - t.y; return Math.sqrt(e * e + t * t) }, e.prototype.distanceSquare = function (t) { var e = this.x - t.x, t = this.y - t.y; return e * e + t * t }, e.prototype.negate = function () { return this.x = -this.x, this.y = -this.y, this }, e.prototype.transform = function (t) { var e, n; if (t) return e = this.x, n = this.y, this.x = t[0] * e + t[2] * n + t[4], this.y = t[1] * e + t[3] * n + t[5], this }, e.prototype.toArray = function (t) { return t[0] = this.x, t[1] = this.y, t }, e.prototype.fromArray = function (t) { this.x = t[0], this.y = t[1] }, e.set = function (t, e, n) { t.x = e, t.y = n }, e.copy = function (t, e) { t.x = e.x, t.y = e.y }, e.len = function (t) { return Math.sqrt(t.x * t.x + t.y * t.y) }, e.lenSquare = function (t) { return t.x * t.x + t.y * t.y }, e.dot = function (t, e) { return t.x * e.x + t.y * e.y }, e.add = function (t, e, n) { t.x = e.x + n.x, t.y = e.y + n.y }, e.sub = function (t, e, n) { t.x = e.x - n.x, t.y = e.y - n.y }, e.scale = function (t, e, n) { t.x = e.x * n, t.y = e.y * n }, e.scaleAndAdd = function (t, e, n, i) { t.x = e.x + n.x * i, t.y = e.y + n.y * i }, e.lerp = function (t, e, n, i) { var r = 1 - i; t.x = r * e.x + i * n.x, t.y = r * e.y + i * n.y }, e); function e(t, e) { this.x = t || 0, this.y = e || 0 } var Ve = Math.min, He = Math.max, We = new M, Ge = new M, Ue = new M, Xe = new M, Ye = new M, qe = new M, z = (Ze.prototype.union = function (t) { var e = Ve(t.x, this.x), n = Ve(t.y, this.y); isFinite(this.x) && isFinite(this.width) ? this.width = He(t.x + t.width, this.x + this.width) - e : this.width = t.width, isFinite(this.y) && isFinite(this.height) ? this.height = He(t.y + t.height, this.y + this.height) - n : this.height = t.height, this.x = e, this.y = n }, Ze.prototype.applyTransform = function (t) { Ze.applyTransform(this, this, t) }, Ze.prototype.calculateTransform = function (t) { var e = t.width / this.width, n = t.height / this.height, i = Le(); return Ne(i, i, [-this.x, -this.y]), ze(i, i, [e, n]), Ne(i, i, [t.x, t.y]), i }, Ze.prototype.intersect = function (t, e) { if (!t) return !1; t instanceof Ze || (t = Ze.create(t)); var n, i, r, o, a, s, l, u, h = this, c = h.x, p = h.x + h.width, d = h.y, h = h.y + h.height, f = t.x, g = t.x + t.width, y = t.y, t = t.y + t.height, m = !(p < f || g < c || h < y || t < d); return e && (n = 1 / 0, i = 0, r = Math.abs(p - f), o = Math.abs(g - c), a = Math.abs(h - y), s = Math.abs(t - d), l = Math.min(r, o), u = Math.min(a, s), p < f || g < c ? i < l && (i = l, r < o ? M.set(qe, -r, 0) : M.set(qe, o, 0)) : l < n && (n = l, r < o ? M.set(Ye, r, 0) : M.set(Ye, -o, 0)), h < y || t < d ? i < u && (i = u, a < s ? M.set(qe, 0, -a) : M.set(qe, 0, s)) : l < n && (n = l, a < s ? M.set(Ye, 0, a) : M.set(Ye, 0, -s))), e && M.copy(e, m ? Ye : qe), m }, Ze.prototype.contain = function (t, e) { var n = this; return t >= n.x && t <= n.x + n.width && e >= n.y && e <= n.y + n.height }, Ze.prototype.clone = function () { return new Ze(this.x, this.y, this.width, this.height) }, Ze.prototype.copy = function (t) { Ze.copy(this, t) }, Ze.prototype.plain = function () { return { x: this.x, y: this.y, width: this.width, height: this.height } }, Ze.prototype.isFinite = function () { return isFinite(this.x) && isFinite(this.y) && isFinite(this.width) && isFinite(this.height) }, Ze.prototype.isZero = function () { return 0 === this.width || 0 === this.height }, Ze.create = function (t) { return new Ze(t.x, t.y, t.width, t.height) }, Ze.copy = function (t, e) { t.x = e.x, t.y = e.y, t.width = e.width, t.height = e.height }, Ze.applyTransform = function (t, e, n) { var i, r, o, a; n ? n[1] < 1e-5 && -1e-5 < n[1] && n[2] < 1e-5 && -1e-5 < n[2] ? (i = n[0], r = n[3], o = n[4], a = n[5], t.x = e.x * i + o, t.y = e.y * r + a, t.width = e.width * i, t.height = e.height * r, t.width < 0 && (t.x += t.width, t.width = -t.width), t.height < 0 && (t.y += t.height, t.height = -t.height)) : (We.x = Ue.x = e.x, We.y = Xe.y = e.y, Ge.x = Xe.x = e.x + e.width, Ge.y = Ue.y = e.y + e.height, We.transform(n), Xe.transform(n), Ge.transform(n), Ue.transform(n), t.x = Ve(We.x, Ge.x, Ue.x, Xe.x), t.y = Ve(We.y, Ge.y, Ue.y, Xe.y), o = He(We.x, Ge.x, Ue.x, Xe.x), a = He(We.y, Ge.y, Ue.y, Xe.y), t.width = o - t.x, t.height = a - t.y) : t !== e && Ze.copy(t, e) }, Ze); function Ze(t, e, n, i) { n < 0 && (t += n, n = -n), i < 0 && (e += i, i = -i), this.x = t, this.y = e, this.width = n, this.height = i } var je = "silent"; function Ke() { Ce(this.event) } function $e(t, e) { this.x = t, this.y = e } u(an, Je = le), an.prototype.dispose = function () { }, an.prototype.setCursor = function () { }; var Qe, Je, tn = an, en = ["click", "dblclick", "mousewheel", "mouseout", "mouseup", "mousedown", "mousemove", "contextmenu"], nn = new z(0, 0, 0, 0), rn = (u(on, Qe = le), on.prototype.setHandlerProxy = function (e) { this.proxy && this.proxy.dispose(), e && (O(en, function (t) { e.on && e.on(t, this[t], this) }, this), e.handler = this), this.proxy = e }, on.prototype.mousemove = function (t) { var e = t.zrX, n = t.zrY, i = ln(this, e, n), r = this._hovered, o = r.target, i = (o && !o.__zr && (o = (r = this.findHover(r.x, r.y)).target), this._hovered = i ? new $e(e, n) : this.findHover(e, n)), e = i.target, n = this.proxy; n.setCursor && n.setCursor(e ? e.cursor : "default"), o && e !== o && this.dispatchToElement(r, "mouseout", t), this.dispatchToElement(i, "mousemove", t), e && e !== o && this.dispatchToElement(i, "mouseover", t) }, on.prototype.mouseout = function (t) { var e = t.zrEventControl; "only_globalout" !== e && this.dispatchToElement(this._hovered, "mouseout", t), "no_globalout" !== e && this.trigger("globalout", { type: "globalout", event: t }) }, on.prototype.resize = function () { this._hovered = new $e(0, 0) }, on.prototype.dispatch = function (t, e) { t = this[t]; t && t.call(this, e) }, on.prototype.dispose = function () { this.proxy.dispose(), this.storage = null, this.proxy = null, this.painter = null }, on.prototype.setCursorStyle = function (t) { var e = this.proxy; e.setCursor && e.setCursor(t) }, on.prototype.dispatchToElement = function (t, e, n) { var i = (t = t || {}).target; if (!i || !i.silent) { for (var r = "on" + e, o = { type: e, event: n, target: (t = t).target, topTarget: t.topTarget, cancelBubble: !1, offsetX: n.zrX, offsetY: n.zrY, gestureEvent: n.gestureEvent, pinchX: n.pinchX, pinchY: n.pinchY, pinchScale: n.pinchScale, wheelDelta: n.zrDelta, zrByTouch: n.zrByTouch, which: n.which, stop: Ke }; i && (i[r] && (o.cancelBubble = !!i[r].call(i, o)), i.trigger(e, o), i = i.__hostTarget || i.parent, !o.cancelBubble);); o.cancelBubble || (this.trigger(e, o), this.painter && this.painter.eachOtherLayer && this.painter.eachOtherLayer(function (t) { "function" == typeof t[r] && t[r].call(t, o), t.trigger && t.trigger(e, o) })) } }, on.prototype.findHover = function (t, e, n) { var i = this.storage.getDisplayList(), r = new $e(t, e); if (sn(i, r, t, e, n), this._pointerSize && !r.target) { for (var o = [], a = this._pointerSize, s = a / 2, l = new z(t - s, e - s, a, a), u = i.length - 1; 0 <= u; u--) { var h = i[u]; h === n || h.ignore || h.ignoreCoarsePointer || h.parent && h.parent.ignoreCoarsePointer || (nn.copy(h.getBoundingRect()), h.transform && nn.applyTransform(h.transform), nn.intersect(l) && o.push(h)) } if (o.length) for (var c = Math.PI / 12, p = 2 * Math.PI, d = 0; d < s; d += 4)for (var f = 0; f < p; f += c)if (sn(o, r, t + d * Math.cos(f), e + d * Math.sin(f), n), r.target) return r } return r }, on.prototype.processGesture = function (t, e) { this._gestureMgr || (this._gestureMgr = new ke); var n = this._gestureMgr, i = ("start" === e && n.clear(), n.recognize(t, this.findHover(t.zrX, t.zrY, null).target, this.proxy.dom)); "end" === e && n.clear(), i && (e = i.type, t.gestureEvent = e, (n = new $e).target = i.target, this.dispatchToElement(n, e, i.event)) }, on); function on(t, e, n, i, r) { var o = Qe.call(this) || this; return o._hovered = new $e(0, 0), o.storage = t, o.painter = e, o.painterRoot = i, o._pointerSize = r, n = n || new tn, o.proxy = null, o.setHandlerProxy(n), o._draggingMgr = new ae(o), o } function an() { var t = null !== Je && Je.apply(this, arguments) || this; return t.handler = null, t } function sn(t, e, n, i, r) { for (var o = t.length - 1; 0 <= o; o--) { var a = t[o], s = void 0; if (a !== r && !a.ignore && (s = function (t, e, n) { if (t[t.rectHover ? "rectContain" : "contain"](e, n)) { for (var i = t, r = void 0, o = !1; i;) { if (!(o = i.ignoreClip ? !0 : o)) { var a = i.getClipPath(); if (a && !a.contain(e, n)) return !1; i.silent && (r = !0) } i = i.__hostTarget || i.parent } return !r || je } return !1 }(a, n, i)) && (e.topTarget || (e.topTarget = a), s !== je)) { e.target = a; break } } } function ln(t, e, n) { t = t.painter; return e < 0 || e > t.getWidth() || n < 0 || n > t.getHeight() } O(["click", "mousedown", "mouseup", "mousewheel", "dblclick", "contextmenu"], function (a) { rn.prototype[a] = function (t) { var e, n, i = t.zrX, r = t.zrY, o = ln(this, i, r); if ("mouseup" === a && o || (n = (e = this.findHover(i, r)).target), "mousedown" === a) this._downEl = n, this._downPoint = [t.zrX, t.zrY], this._upEl = n; else if ("mouseup" === a) this._upEl = n; else if ("click" === a) { if (this._downEl !== this._upEl || !this._downPoint || 4 < $t(this._downPoint, [t.zrX, t.zrY])) return; this._downPoint = null } this.dispatchToElement(e, a, t) } }); var un = 32, hn = 7; function cn(t, e, n, i) { var r = e + 1; if (r === n) return 1; if (i(t[r++], t[e]) < 0) { for (; r < n && i(t[r], t[r - 1]) < 0;)r++; var o = t, a = e, s = r; for (s--; a < s;) { var l = o[a]; o[a++] = o[s], o[s--] = l } } else for (; r < n && 0 <= i(t[r], t[r - 1]);)r++; return r - e } function pn(t, e, n, i, r) { for (i === e && i++; i < n; i++) { for (var o, a = t[i], s = e, l = i; s < l;)r(a, t[o = s + l >>> 1]) < 0 ? l = o : s = 1 + o; var u = i - s; switch (u) { case 3: t[s + 3] = t[s + 2]; case 2: t[s + 2] = t[s + 1]; case 1: t[s + 1] = t[s]; break; default: for (; 0 < u;)t[s + u] = t[s + u - 1], u-- }t[s] = a } } function dn(t, e, n, i, r, o) { var a = 0, s = 0, l = 1; if (0 < o(t, e[n + r])) { for (s = i - r; l < s && 0 < o(t, e[n + r + l]);)(l = 1 + ((a = l) << 1)) <= 0 && (l = s); s < l && (l = s), a += r, l += r } else { for (s = r + 1; l < s && o(t, e[n + r - l]) <= 0;)(l = 1 + ((a = l) << 1)) <= 0 && (l = s); i = a, a = r - (l = s < l ? s : l), l = r - i } for (a++; a < l;) { var u = a + (l - a >>> 1); 0 < o(t, e[n + u]) ? a = u + 1 : l = u } return l } function fn(t, e, n, i, r, o) { var a = 0, s = 0, l = 1; if (o(t, e[n + r]) < 0) { for (s = r + 1; l < s && o(t, e[n + r - l]) < 0;)(l = 1 + ((a = l) << 1)) <= 0 && (l = s); var u = a, a = r - (l = s < l ? s : l), l = r - u } else { for (s = i - r; l < s && 0 <= o(t, e[n + r + l]);)(l = 1 + ((a = l) << 1)) <= 0 && (l = s); s < l && (l = s), a += r, l += r } for (a++; a < l;) { var h = a + (l - a >>> 1); o(t, e[n + h]) < 0 ? l = h : a = h + 1 } return l } function gn(t, e, n, i) { var f, g, o, a, y, s, m, r = (i = i || t.length) - (n = n || 0); if (!(r < 2)) { var l = 0; if (r < un) pn(t, n, i, n + (l = cn(t, n, i, e)), e); else { g = e, y = hn, s = 0, (f = t).length, m = [], o = [], a = []; var u, h = { mergeRuns: function () { for (; 1 < s;) { var t = s - 2; if (1 <= t && a[t - 1] <= a[t] + a[t + 1] || 2 <= t && a[t - 2] <= a[t] + a[t - 1]) a[t - 1] < a[t + 1] && t--; else if (a[t] > a[t + 1]) break; p(t) } }, forceMergeRuns: function () { for (; 1 < s;) { var t = s - 2; 0 < t && a[t - 1] < a[t + 1] && t--, p(t) } }, pushRun: function (t, e) { o[s] = t, a[s] = e, s += 1 } }, c = function (t) { for (var e = 0; un <= t;)e |= 1 & t, t >>= 1; return t + e }(r); do { } while ((l = cn(t, n, i, e)) < c && (pn(t, n, n + (u = c < (u = r) ? c : r), n + l, e), l = u), h.pushRun(n, l), h.mergeRuns(), n += l, 0 !== (r -= l)); h.forceMergeRuns() } } function p(t) { var e = o[t], n = a[t], i = o[t + 1], r = a[t + 1], t = (a[t] = n + r, t === s - 3 && (o[t + 1] = o[t + 2], a[t + 1] = a[t + 2]), s--, fn(f[i], f, e, n, 0, g)); e += t, 0 != (n -= t) && 0 !== (r = dn(f[e + n - 1], f, i, r, r - 1, g)) && (n <= r ? function (t, e, n, i) { for (var r = 0, r = 0; r < e; r++)m[r] = f[t + r]; var o = 0, a = n, s = t; if (f[s++] = f[a++], 0 == --i) for (r = 0; r < e; r++)f[s + r] = m[o + r]; else { if (1 === e) { for (r = 0; r < i; r++)f[s + r] = f[a + r]; return f[s + i] = m[o] } for (var l, u, h, c = y; ;) { u = l = 0, h = !1; do { if (g(f[a], m[o]) < 0) { if (f[s++] = f[a++], u++, (l = 0) == --i) { h = !0; break } } else if (f[s++] = m[o++], l++, u = 0, 1 == --e) { h = !0; break } } while ((l | u) < c); if (h) break; do { if (0 !== (l = fn(f[a], m, o, e, 0, g))) { for (r = 0; r < l; r++)f[s + r] = m[o + r]; if (s += l, o += l, (e -= l) <= 1) { h = !0; break } } if (f[s++] = f[a++], 0 == --i) { h = !0; break } if (0 !== (u = dn(m[o], f, a, i, 0, g))) { for (r = 0; r < u; r++)f[s + r] = f[a + r]; if (s += u, a += u, 0 == (i -= u)) { h = !0; break } } if (f[s++] = m[o++], 1 == --e) { h = !0; break } } while (c--, hn <= l || hn <= u); if (h) break; c < 0 && (c = 0), c += 2 } if ((y = c) < 1 && (y = 1), 1 === e) { for (r = 0; r < i; r++)f[s + r] = f[a + r]; f[s + i] = m[o] } else { if (0 === e) throw new Error; for (r = 0; r < e; r++)f[s + r] = m[o + r] } } } : function (t, e, n, i) { for (var r = 0, r = 0; r < i; r++)m[r] = f[n + r]; var o = t + e - 1, a = i - 1, s = n + i - 1, l = 0, u = 0; if (f[s--] = f[o--], 0 == --e) for (l = s - (i - 1), r = 0; r < i; r++)f[l + r] = m[r]; else { if (1 === i) { for (u = 1 + (s -= e), l = 1 + (o -= e), r = e - 1; 0 <= r; r--)f[u + r] = f[l + r]; return f[s] = m[a] } for (var h = y; ;) { var c = 0, p = 0, d = !1; do { if (g(m[a], f[o]) < 0) { if (f[s--] = f[o--], c++, (p = 0) == --e) { d = !0; break } } else if (f[s--] = m[a--], p++, c = 0, 1 == --i) { d = !0; break } } while ((c | p) < h); if (d) break; do { if (0 != (c = e - fn(m[a], f, t, e, e - 1, g))) { for (e -= c, u = 1 + (s -= c), l = 1 + (o -= c), r = c - 1; 0 <= r; r--)f[u + r] = f[l + r]; if (0 === e) { d = !0; break } } if (f[s--] = m[a--], 1 == --i) { d = !0; break } if (0 != (p = i - dn(f[o], m, 0, i, i - 1, g))) { for (i -= p, u = 1 + (s -= p), l = 1 + (a -= p), r = 0; r < p; r++)f[u + r] = m[l + r]; if (i <= 1) { d = !0; break } } if (f[s--] = f[o--], 0 == --e) { d = !0; break } } while (h--, hn <= c || hn <= p); if (d) break; h < 0 && (h = 0), h += 2 } if ((y = h) < 1 && (y = 1), 1 === i) { for (u = 1 + (s -= e), l = 1 + (o -= e), r = e - 1; 0 <= r; r--)f[u + r] = f[l + r]; f[s] = m[a] } else { if (0 === i) throw new Error; for (l = s - (i - 1), r = 0; r < i; r++)f[l + r] = m[r] } } })(e, n, i, r) } } var yn = 1, mn = 4, vn = !1; function _n() { vn || (vn = !0, console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors")) } function xn(t, e) { return t.zlevel === e.zlevel ? t.z === e.z ? t.z2 - e.z2 : t.z - e.z : t.zlevel - e.zlevel } bn.prototype.traverse = function (t, e) { for (var n = 0; n < this._roots.length; n++)this._roots[n].traverse(t, e) }, bn.prototype.getDisplayList = function (t, e) { e = e || !1; var n = this._displayList; return !t && n.length || this.updateDisplayList(e), n }, bn.prototype.updateDisplayList = function (t) { this._displayListLen = 0; for (var e = this._roots, n = this._displayList, i = 0, r = e.length; i < r; i++)this._updateAndAddDisplayable(e[i], null, t); n.length = this._displayListLen, gn(n, xn) }, bn.prototype._updateAndAddDisplayable = function (t, e, n) { if (!t.ignore || n) { t.beforeUpdate(), t.update(), t.afterUpdate(); var i = t.getClipPath(); if (t.ignoreClip) e = null; else if (i) { e = e ? e.slice() : []; for (var r = i, o = t; r;)r.parent = o, r.updateTransform(), e.push(r), r = (o = r).getClipPath() } if (t.childrenRef) { for (var a = t.childrenRef(), s = 0; s < a.length; s++) { var l = a[s]; t.__dirty && (l.__dirty |= yn), this._updateAndAddDisplayable(l, e, n) } t.__dirty = 0 } else { i = t; e && e.length ? i.__clipPaths = e : i.__clipPaths && 0 < i.__clipPaths.length && (i.__clipPaths = []), isNaN(i.z) && (_n(), i.z = 0), isNaN(i.z2) && (_n(), i.z2 = 0), isNaN(i.zlevel) && (_n(), i.zlevel = 0), this._displayList[this._displayListLen++] = i } i = t.getDecalElement && t.getDecalElement(), i = (i && this._updateAndAddDisplayable(i, e, n), t.getTextGuideLine()), i = (i && this._updateAndAddDisplayable(i, e, n), t.getTextContent()); i && this._updateAndAddDisplayable(i, e, n) } }, bn.prototype.addRoot = function (t) { t.__zr && t.__zr.storage === this || this._roots.push(t) }, bn.prototype.delRoot = function (t) { if (t instanceof Array) for (var e = 0, n = t.length; e < n; e++)this.delRoot(t[e]); else { var i = k(this._roots, t); 0 <= i && this._roots.splice(i, 1) } }, bn.prototype.delAllRoots = function () { this._roots = [], this._displayList = [], this._displayListLen = 0 }, bn.prototype.getRoots = function () { return this._roots }, bn.prototype.dispose = function () { this._displayList = null, this._roots = null }; var wn = bn; function bn() { this._roots = [], this._displayList = [], this._displayListLen = 0, this.displayableSortFunc = xn } var Sn = p.hasGlobalWindow && (window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window) || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame) || function (t) { return setTimeout(t, 16) }, Mn = { linear: function (t) { return t }, quadraticIn: function (t) { return t * t }, quadraticOut: function (t) { return t * (2 - t) }, quadraticInOut: function (t) { return (t *= 2) < 1 ? .5 * t * t : -.5 * (--t * (t - 2) - 1) }, cubicIn: function (t) { return t * t * t }, cubicOut: function (t) { return --t * t * t + 1 }, cubicInOut: function (t) { return (t *= 2) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2) }, quarticIn: function (t) { return t * t * t * t }, quarticOut: function (t) { return 1 - --t * t * t * t }, quarticInOut: function (t) { return (t *= 2) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2) }, quinticIn: function (t) { return t * t * t * t * t }, quinticOut: function (t) { return --t * t * t * t * t + 1 }, quinticInOut: function (t) { return (t *= 2) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2) }, sinusoidalIn: function (t) { return 1 - Math.cos(t * Math.PI / 2) }, sinusoidalOut: function (t) { return Math.sin(t * Math.PI / 2) }, sinusoidalInOut: function (t) { return .5 * (1 - Math.cos(Math.PI * t)) }, exponentialIn: function (t) { return 0 === t ? 0 : Math.pow(1024, t - 1) }, exponentialOut: function (t) { return 1 === t ? 1 : 1 - Math.pow(2, -10 * t) }, exponentialInOut: function (t) { return 0 === t ? 0 : 1 === t ? 1 : (t *= 2) < 1 ? .5 * Math.pow(1024, t - 1) : .5 * (2 - Math.pow(2, -10 * (t - 1))) }, circularIn: function (t) { return 1 - Math.sqrt(1 - t * t) }, circularOut: function (t) { return Math.sqrt(1 - --t * t) }, circularInOut: function (t) { return (t *= 2) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1) }, elasticIn: function (t) { var e, n = .1; return 0 === t ? 0 : 1 === t ? 1 : (e = !n || n < 1 ? (n = 1, .1) : .4 * Math.asin(1 / n) / (2 * Math.PI), -n * Math.pow(2, 10 * --t) * Math.sin((t - e) * (2 * Math.PI) / .4)) }, elasticOut: function (t) { var e, n = .1; return 0 === t ? 0 : 1 === t ? 1 : (e = !n || n < 1 ? (n = 1, .1) : .4 * Math.asin(1 / n) / (2 * Math.PI), n * Math.pow(2, -10 * t) * Math.sin((t - e) * (2 * Math.PI) / .4) + 1) }, elasticInOut: function (t) { var e, n = .1; return 0 === t ? 0 : 1 === t ? 1 : (e = !n || n < 1 ? (n = 1, .1) : .4 * Math.asin(1 / n) / (2 * Math.PI), (t *= 2) < 1 ? n * Math.pow(2, 10 * --t) * Math.sin((t - e) * (2 * Math.PI) / .4) * -.5 : n * Math.pow(2, -10 * --t) * Math.sin((t - e) * (2 * Math.PI) / .4) * .5 + 1) }, backIn: function (t) { return t * t * (2.70158 * t - 1.70158) }, backOut: function (t) { return --t * t * (2.70158 * t + 1.70158) + 1 }, backInOut: function (t) { var e = 2.5949095; return (t *= 2) < 1 ? t * t * ((1 + e) * t - e) * .5 : .5 * ((t -= 2) * t * ((1 + e) * t + e) + 2) }, bounceIn: function (t) { return 1 - Mn.bounceOut(1 - t) }, bounceOut: function (t) { return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375 }, bounceInOut: function (t) { return t < .5 ? .5 * Mn.bounceIn(2 * t) : .5 * Mn.bounceOut(2 * t - 1) + .5 } }, Tn = Math.pow, Cn = Math.sqrt, kn = 1e-8, Dn = Cn(3), In = 1 / 3, An = Wt(), Ln = Wt(), Pn = Wt(); function On(t) { return -kn < t && t < kn } function Rn(t) { return kn < t || t < -kn } function Nn(t, e, n, i, r) { var o = 1 - r; return o * o * (o * t + 3 * r * e) + r * r * (r * i + 3 * o * n) } function En(t, e, n, i, r) { var o = 1 - r; return 3 * (((e - t) * o + 2 * (n - e) * r) * o + (i - n) * r * r) } function zn(t, e, n, i, r, o) { var a, s, i = i + 3 * (e - n) - t, n = 3 * (n - 2 * e + t), e = 3 * (e - t), t = t - r, r = n * n - 3 * i * e, l = n * e - 9 * i * t, t = e * e - 3 * n * t, u = 0; return On(r) && On(l) ? On(n) ? o[0] = 0 : 0 <= (s = -e / n) && s <= 1 && (o[u++] = s) : On(e = l * l - 4 * r * t) ? (a = -(t = l / r) / 2, 0 <= (s = -n / i + t) && s <= 1 && (o[u++] = s), 0 <= a && a <= 1 && (o[u++] = a)) : 0 < e ? (e = r * n + 1.5 * i * (-l - (t = Cn(e))), 0 <= (s = (-n - ((t = (t = r * n + 1.5 * i * (-l + t)) < 0 ? -Tn(-t, In) : Tn(t, In)) + (e = e < 0 ? -Tn(-e, In) : Tn(e, In)))) / (3 * i)) && s <= 1 && (o[u++] = s)) : (t = (2 * r * n - 3 * i * l) / (2 * Cn(r * r * r)), e = Math.acos(t) / 3, s = (-n - 2 * (l = Cn(r)) * (t = Math.cos(e))) / (3 * i), a = (-n + l * (t + Dn * Math.sin(e))) / (3 * i), r = (-n + l * (t - Dn * Math.sin(e))) / (3 * i), 0 <= s && s <= 1 && (o[u++] = s), 0 <= a && a <= 1 && (o[u++] = a), 0 <= r && r <= 1 && (o[u++] = r)), u } function Bn(t, e, n, i, r) { var o, a = 6 * n - 12 * e + 6 * t, i = 9 * e + 3 * i - 3 * t - 9 * n, n = 3 * e - 3 * t, e = 0; return On(i) ? Rn(a) && 0 <= (o = -n / a) && o <= 1 && (r[e++] = o) : On(t = a * a - 4 * i * n) ? r[0] = -a / (2 * i) : 0 < t && (t = (-a - (n = Cn(t))) / (2 * i), 0 <= (o = (-a + n) / (2 * i)) && o <= 1 && (r[e++] = o), 0 <= t) && t <= 1 && (r[e++] = t), e } function Fn(t, e, n, i, r, o) { var a = (e - t) * r + t, e = (n - e) * r + e, n = (i - n) * r + n, s = (e - a) * r + a, e = (n - e) * r + e, r = (e - s) * r + s; o[0] = t, o[1] = a, o[2] = s, o[3] = r, o[4] = r, o[5] = e, o[6] = n, o[7] = i } function Vn(t, e, n, i, r, o, a, s, l, u, h) { var c, p, d, f, g = .005, y = 1 / 0; An[0] = l, An[1] = u; for (var m = 0; m < 1; m += .05)Ln[0] = Nn(t, n, r, a, m), Ln[1] = Nn(e, i, o, s, m), (d = Jt(An, Ln)) < y && (c = m, y = d); for (var y = 1 / 0, v = 0; v < 32 && !(g < 1e-4); v++)p = c + g, Ln[0] = Nn(t, n, r, a, f = c - g), Ln[1] = Nn(e, i, o, s, f), d = Jt(Ln, An), 0 <= f && d < y ? (c = f, y = d) : (Pn[0] = Nn(t, n, r, a, p), Pn[1] = Nn(e, i, o, s, p), f = Jt(Pn, An), p <= 1 && f < y ? (c = p, y = f) : g *= .5); return h && (h[0] = Nn(t, n, r, a, c), h[1] = Nn(e, i, o, s, c)), Cn(y) } function Hn(t, e, n, i) { var r = 1 - i; return r * (r * t + 2 * i * e) + i * i * n } function Wn(t, e, n, i) { return 2 * ((1 - i) * (e - t) + i * (n - e)) } function Gn(t, e, n) { n = t + n - 2 * e; return 0 == n ? .5 : (t - e) / n } function Un(t, e, n, i, r) { var o = (e - t) * i + t, e = (n - e) * i + e, i = (e - o) * i + o; r[0] = t, r[1] = o, r[2] = i, r[3] = i, r[4] = e, r[5] = n } function Xn(t, e, n, i, r, o, a, s, l) { var u, h = .005, c = 1 / 0; An[0] = a, An[1] = s; for (var p = 0; p < 1; p += .05)Ln[0] = Hn(t, n, r, p), Ln[1] = Hn(e, i, o, p), (y = Jt(An, Ln)) < c && (u = p, c = y); for (var c = 1 / 0, d = 0; d < 32 && !(h < 1e-4); d++) { var f = u - h, g = u + h, y = (Ln[0] = Hn(t, n, r, f), Ln[1] = Hn(e, i, o, f), Jt(Ln, An)); 0 <= f && y < c ? (u = f, c = y) : (Pn[0] = Hn(t, n, r, g), Pn[1] = Hn(e, i, o, g), f = Jt(Pn, An), g <= 1 && f < c ? (u = g, c = f) : h *= .5) } return l && (l[0] = Hn(t, n, r, u), l[1] = Hn(e, i, o, u)), Cn(c) } var Yn = /cubic-bezier\(([0-9,\.e ]+)\)/; function qn(t) { t = t && Yn.exec(t); if (t) { var e, t = t[1].split(","), n = +Ct(t[0]), i = +Ct(t[1]), r = +Ct(t[2]), o = +Ct(t[3]); if (!isNaN(n + i + r + o)) return e = [], function (t) { return t <= 0 ? 0 : 1 <= t ? 1 : zn(0, n, r, 1, t, e) && Nn(0, i, o, 1, e[0]) } } } jn.prototype.step = function (t, e) { if (this._inited || (this._startTime = t + this._delay, this._inited = !0), !this._paused) { var n = this._life, i = t - this._startTime - this._pausedTime, r = i / n, o = (r < 0 && (r = 0), r = Math.min(r, 1), this.easingFunc), o = o ? o(r) : r; if (this.onframe(o), 1 === r) { if (!this.loop) return !0; this._startTime = t - i % n, this._pausedTime = 0, this.onrestart() } return !1 } this._pausedTime += e }, jn.prototype.pause = function () { this._paused = !0 }, jn.prototype.resume = function () { this._paused = !1 }, jn.prototype.setEasing = function (t) { this.easing = t, this.easingFunc = S(t) ? t : Mn[t] || qn(t) }; var Zn = jn; function jn(t) { this._inited = !1, this._startTime = 0, this._pausedTime = 0, this._paused = !1, this._life = t.life || 1e3, this._delay = t.delay || 0, this.loop = t.loop || !1, this.onframe = t.onframe || Ft, this.ondestroy = t.ondestroy || Ft, this.onrestart = t.onrestart || Ft, t.easing && this.setEasing(t.easing) } function Kn(t) { this.value = t } Qn.prototype.insert = function (t) { t = new Kn(t); return this.insertEntry(t), t }, Qn.prototype.insertEntry = function (t) { this.head ? ((this.tail.next = t).prev = this.tail, t.next = null, this.tail = t) : this.head = this.tail = t, this._len++ }, Qn.prototype.remove = function (t) { var e = t.prev, n = t.next; e ? e.next = n : this.head = n, n ? n.prev = e : this.tail = e, t.next = t.prev = null, this._len-- }, Qn.prototype.len = function () { return this._len }, Qn.prototype.clear = function () { this.head = this.tail = null, this._len = 0 }; var $n = Qn; function Qn() { this._len = 0 } ti.prototype.put = function (t, e) { var n, i, r = this._list, o = this._map, a = null; return null == o[t] && (i = r.len(), n = this._lastRemovedEntry, i >= this._maxSize && 0 < i && (i = r.head, r.remove(i), delete o[i.key], a = i.value, this._lastRemovedEntry = i), n ? n.value = e : n = new Kn(e), n.key = t, r.insertEntry(n), o[t] = n), a }, ti.prototype.get = function (t) { var t = this._map[t], e = this._list; if (null != t) return t !== e.tail && (e.remove(t), e.insertEntry(t)), t.value }, ti.prototype.clear = function () { this._list.clear(), this._map = {} }, ti.prototype.len = function () { return this._list.len() }; var Jn = ti; function ti(t) { this._list = new $n, this._maxSize = 10, this._map = {}, this._maxSize = t } var ei = { transparent: [0, 0, 0, 0], aliceblue: [240, 248, 255, 1], antiquewhite: [250, 235, 215, 1], aqua: [0, 255, 255, 1], aquamarine: [127, 255, 212, 1], azure: [240, 255, 255, 1], beige: [245, 245, 220, 1], bisque: [255, 228, 196, 1], black: [0, 0, 0, 1], blanchedalmond: [255, 235, 205, 1], blue: [0, 0, 255, 1], blueviolet: [138, 43, 226, 1], brown: [165, 42, 42, 1], burlywood: [222, 184, 135, 1], cadetblue: [95, 158, 160, 1], chartreuse: [127, 255, 0, 1], chocolate: [210, 105, 30, 1], coral: [255, 127, 80, 1], cornflowerblue: [100, 149, 237, 1], cornsilk: [255, 248, 220, 1], crimson: [220, 20, 60, 1], cyan: [0, 255, 255, 1], darkblue: [0, 0, 139, 1], darkcyan: [0, 139, 139, 1], darkgoldenrod: [184, 134, 11, 1], darkgray: [169, 169, 169, 1], darkgreen: [0, 100, 0, 1], darkgrey: [169, 169, 169, 1], darkkhaki: [189, 183, 107, 1], darkmagenta: [139, 0, 139, 1], darkolivegreen: [85, 107, 47, 1], darkorange: [255, 140, 0, 1], darkorchid: [153, 50, 204, 1], darkred: [139, 0, 0, 1], darksalmon: [233, 150, 122, 1], darkseagreen: [143, 188, 143, 1], darkslateblue: [72, 61, 139, 1], darkslategray: [47, 79, 79, 1], darkslategrey: [47, 79, 79, 1], darkturquoise: [0, 206, 209, 1], darkviolet: [148, 0, 211, 1], deeppink: [255, 20, 147, 1], deepskyblue: [0, 191, 255, 1], dimgray: [105, 105, 105, 1], dimgrey: [105, 105, 105, 1], dodgerblue: [30, 144, 255, 1], firebrick: [178, 34, 34, 1], floralwhite: [255, 250, 240, 1], forestgreen: [34, 139, 34, 1], fuchsia: [255, 0, 255, 1], gainsboro: [220, 220, 220, 1], ghostwhite: [248, 248, 255, 1], gold: [255, 215, 0, 1], goldenrod: [218, 165, 32, 1], gray: [128, 128, 128, 1], green: [0, 128, 0, 1], greenyellow: [173, 255, 47, 1], grey: [128, 128, 128, 1], honeydew: [240, 255, 240, 1], hotpink: [255, 105, 180, 1], indianred: [205, 92, 92, 1], indigo: [75, 0, 130, 1], ivory: [255, 255, 240, 1], khaki: [240, 230, 140, 1], lavender: [230, 230, 250, 1], lavenderblush: [255, 240, 245, 1], lawngreen: [124, 252, 0, 1], lemonchiffon: [255, 250, 205, 1], lightblue: [173, 216, 230, 1], lightcoral: [240, 128, 128, 1], lightcyan: [224, 255, 255, 1], lightgoldenrodyellow: [250, 250, 210, 1], lightgray: [211, 211, 211, 1], lightgreen: [144, 238, 144, 1], lightgrey: [211, 211, 211, 1], lightpink: [255, 182, 193, 1], lightsalmon: [255, 160, 122, 1], lightseagreen: [32, 178, 170, 1], lightskyblue: [135, 206, 250, 1], lightslategray: [119, 136, 153, 1], lightslategrey: [119, 136, 153, 1], lightsteelblue: [176, 196, 222, 1], lightyellow: [255, 255, 224, 1], lime: [0, 255, 0, 1], limegreen: [50, 205, 50, 1], linen: [250, 240, 230, 1], magenta: [255, 0, 255, 1], maroon: [128, 0, 0, 1], mediumaquamarine: [102, 205, 170, 1], mediumblue: [0, 0, 205, 1], mediumorchid: [186, 85, 211, 1], mediumpurple: [147, 112, 219, 1], mediumseagreen: [60, 179, 113, 1], mediumslateblue: [123, 104, 238, 1], mediumspringgreen: [0, 250, 154, 1], mediumturquoise: [72, 209, 204, 1], mediumvioletred: [199, 21, 133, 1], midnightblue: [25, 25, 112, 1], mintcream: [245, 255, 250, 1], mistyrose: [255, 228, 225, 1], moccasin: [255, 228, 181, 1], navajowhite: [255, 222, 173, 1], navy: [0, 0, 128, 1], oldlace: [253, 245, 230, 1], olive: [128, 128, 0, 1], olivedrab: [107, 142, 35, 1], orange: [255, 165, 0, 1], orangered: [255, 69, 0, 1], orchid: [218, 112, 214, 1], palegoldenrod: [238, 232, 170, 1], palegreen: [152, 251, 152, 1], paleturquoise: [175, 238, 238, 1], palevioletred: [219, 112, 147, 1], papayawhip: [255, 239, 213, 1], peachpuff: [255, 218, 185, 1], peru: [205, 133, 63, 1], pink: [255, 192, 203, 1], plum: [221, 160, 221, 1], powderblue: [176, 224, 230, 1], purple: [128, 0, 128, 1], red: [255, 0, 0, 1], rosybrown: [188, 143, 143, 1], royalblue: [65, 105, 225, 1], saddlebrown: [139, 69, 19, 1], salmon: [250, 128, 114, 1], sandybrown: [244, 164, 96, 1], seagreen: [46, 139, 87, 1], seashell: [255, 245, 238, 1], sienna: [160, 82, 45, 1], silver: [192, 192, 192, 1], skyblue: [135, 206, 235, 1], slateblue: [106, 90, 205, 1], slategray: [112, 128, 144, 1], slategrey: [112, 128, 144, 1], snow: [255, 250, 250, 1], springgreen: [0, 255, 127, 1], steelblue: [70, 130, 180, 1], tan: [210, 180, 140, 1], teal: [0, 128, 128, 1], thistle: [216, 191, 216, 1], tomato: [255, 99, 71, 1], turquoise: [64, 224, 208, 1], violet: [238, 130, 238, 1], wheat: [245, 222, 179, 1], white: [255, 255, 255, 1], whitesmoke: [245, 245, 245, 1], yellow: [255, 255, 0, 1], yellowgreen: [154, 205, 50, 1] }; function ni(t) { return (t = Math.round(t)) < 0 ? 0 : 255 < t ? 255 : t } function ii(t) { return t < 0 ? 0 : 1 < t ? 1 : t } function ri(t) { return t.length && "%" === t.charAt(t.length - 1) ? ni(parseFloat(t) / 100 * 255) : ni(parseInt(t, 10)) } function oi(t) { return t.length && "%" === t.charAt(t.length - 1) ? ii(parseFloat(t) / 100) : ii(parseFloat(t)) } function ai(t, e, n) { return n < 0 ? n += 1 : 1 < n && --n, 6 * n < 1 ? t + (e - t) * n * 6 : 2 * n < 1 ? e : 3 * n < 2 ? t + (e - t) * (2 / 3 - n) * 6 : t } function si(t, e, n) { return t + (e - t) * n } function li(t, e, n, i, r) { return t[0] = e, t[1] = n, t[2] = i, t[3] = r, t } function ui(t, e) { return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t } var hi = new Jn(20), ci = null; function pi(t, e) { ci && ui(ci, e), ci = hi.put(t, ci || e.slice()) } function di(t, e) { if (t) { e = e || []; var n = hi.get(t); if (n) return ui(e, n); n = (t += "").replace(/ /g, "").toLowerCase(); if (n in ei) return ui(e, ei[n]), pi(t, e), e; var i = n.length; if ("#" === n.charAt(0)) return 4 === i || 5 === i ? 0 <= (r = parseInt(n.slice(1, 4), 16)) && r <= 4095 ? (li(e, (3840 & r) >> 4 | (3840 & r) >> 8, 240 & r | (240 & r) >> 4, 15 & r | (15 & r) << 4, 5 === i ? parseInt(n.slice(4), 16) / 15 : 1), pi(t, e), e) : void li(e, 0, 0, 0, 1) : 7 === i || 9 === i ? 0 <= (r = parseInt(n.slice(1, 7), 16)) && r <= 16777215 ? (li(e, (16711680 & r) >> 16, (65280 & r) >> 8, 255 & r, 9 === i ? parseInt(n.slice(7), 16) / 255 : 1), pi(t, e), e) : void li(e, 0, 0, 0, 1) : void 0; var r = n.indexOf("("), o = n.indexOf(")"); if (-1 !== r && o + 1 === i) { var i = n.substr(0, r), a = n.substr(r + 1, o - (r + 1)).split(","), s = 1; switch (i) { case "rgba": if (4 !== a.length) return 3 === a.length ? li(e, +a[0], +a[1], +a[2], 1) : li(e, 0, 0, 0, 1); s = oi(a.pop()); case "rgb": return 3 <= a.length ? (li(e, ri(a[0]), ri(a[1]), ri(a[2]), 3 === a.length ? s : oi(a[3])), pi(t, e), e) : void li(e, 0, 0, 0, 1); case "hsla": return 4 !== a.length ? void li(e, 0, 0, 0, 1) : (a[3] = oi(a[3]), fi(a, e), pi(t, e), e); case "hsl": return 3 !== a.length ? void li(e, 0, 0, 0, 1) : (fi(a, e), pi(t, e), e); default: return } } li(e, 0, 0, 0, 1) } } function fi(t, e) { var n = (parseFloat(t[0]) % 360 + 360) % 360 / 360, i = oi(t[1]), r = oi(t[2]), i = r <= .5 ? r * (i + 1) : r + i - r * i, r = 2 * r - i; return li(e = e || [], ni(255 * ai(r, i, n + 1 / 3)), ni(255 * ai(r, i, n)), ni(255 * ai(r, i, n - 1 / 3)), 1), 4 === t.length && (e[3] = t[3]), e } function gi(t, e) { var n = di(t); if (n) { for (var i = 0; i < 3; i++)n[i] = e < 0 ? n[i] * (1 - e) | 0 : (255 - n[i]) * e + n[i] | 0, 255 < n[i] ? n[i] = 255 : n[i] < 0 && (n[i] = 0); return vi(n, 4 === n.length ? "rgba" : "rgb") } } function yi(t, e, n) { var i, r, o; if (e && e.length && 0 <= t && t <= 1) return n = n || [], t = t * (e.length - 1), i = Math.floor(t), o = Math.ceil(t), r = e[i], e = e[o], n[0] = ni(si(r[0], e[0], o = t - i)), n[1] = ni(si(r[1], e[1], o)), n[2] = ni(si(r[2], e[2], o)), n[3] = ii(si(r[3], e[3], o)), n } function mi(t, e, n) { var i, r, o, a; if (e && e.length && 0 <= t && t <= 1) return t = t * (e.length - 1), i = Math.floor(t), r = Math.ceil(t), a = di(e[i]), e = di(e[r]), a = vi([ni(si(a[0], e[0], o = t - i)), ni(si(a[1], e[1], o)), ni(si(a[2], e[2], o)), ii(si(a[3], e[3], o))], "rgba"), n ? { color: a, leftIndex: i, rightIndex: r, value: t } : a } function vi(t, e) { var n; if (t && t.length) return n = t[0] + "," + t[1] + "," + t[2], "rgba" !== e && "hsva" !== e && "hsla" !== e || (n += "," + t[3]), e + "(" + n + ")" } function _i(t, e) { t = di(t); return t ? (.299 * t[0] + .587 * t[1] + .114 * t[2]) * t[3] / 255 + (1 - t[3]) * e : 0 } var xi = Object.freeze({ __proto__: null, fastLerp: yi, fastMapToColor: yi, lerp: mi, lift: gi, lum: _i, mapToColor: mi, modifyAlpha: function (t, e) { if ((t = di(t)) && null != e) return t[3] = ii(e), vi(t, "rgba") }, modifyHSL: function (t, e, n, i) { var r = di(t); if (t) return r = function (t) { var e, n, i, r, o, a, s, l, u, h; if (t) return h = t[0] / 255, n = t[1] / 255, i = t[2] / 255, s = Math.min(h, n, i), o = ((r = Math.max(h, n, i)) + s) / 2, 0 == (u = r - s) ? a = e = 0 : (a = o < .5 ? u / (r + s) : u / (2 - r - s), s = ((r - h) / 6 + u / 2) / u, l = ((r - n) / 6 + u / 2) / u, u = ((r - i) / 6 + u / 2) / u, h === r ? e = u - l : n === r ? e = 1 / 3 + s - u : i === r && (e = 2 / 3 + l - s), e < 0 && (e += 1), 1 < e && --e), h = [360 * e, a, o], null != t[3] && h.push(t[3]), h }(r), null != e && (r[0] = (t = e, (t = Math.round(t)) < 0 ? 0 : 360 < t ? 360 : t)), null != n && (r[1] = oi(n)), null != i && (r[2] = oi(i)), vi(fi(r), "rgba") }, parse: di, random: function () { return vi([Math.round(255 * Math.random()), Math.round(255 * Math.random()), Math.round(255 * Math.random())], "rgb") }, stringify: vi, toHex: function (t) { if (t = di(t)) return ((1 << 24) + (t[0] << 16) + (t[1] << 8) + +t[2]).toString(16).slice(1) } }); p.hasGlobalWindow && S(window.btoa); var wi = Array.prototype.slice; function bi(t, e, n) { return (e - t) * n + t } function Si(t, e, n, i) { for (var r = e.length, o = 0; o < r; o++)t[o] = bi(e[o], n[o], i); return t } function Mi(t, e, n, i) { for (var r = e.length, o = 0; o < r; o++)t[o] = e[o] + n[o] * i; return t } function Ti(t, e, n, i) { for (var r = e.length, o = r && e[0].length, a = 0; a < r; a++) { t[a] || (t[a] = []); for (var s = 0; s < o; s++)t[a][s] = e[a][s] + n[a][s] * i } return t } function Ci(t) { if (st(t)) { var e = t.length; if (st(t[0])) { for (var n = [], i = 0; i < e; i++)n.push(wi.call(t[i])); return n } return wi.call(t) } return t } function ki(t) { return t[0] = Math.floor(t[0]) || 0, t[1] = Math.floor(t[1]) || 0, t[2] = Math.floor(t[2]) || 0, t[3] = null == t[3] ? 1 : t[3], "rgba(" + t.join(",") + ")" } function Di(t) { return 4 === t || 5 === t } function Ii(t) { return 1 === t || 2 === t } var Ai = [0, 0, 0, 0], Li = (Oi.prototype.isFinished = function () { return this._finished }, Oi.prototype.setFinished = function () { this._finished = !0, this._additiveTrack && this._additiveTrack.setFinished() }, Oi.prototype.needsAnimate = function () { return 1 <= this.keyframes.length }, Oi.prototype.getAdditiveTrack = function () { return this._additiveTrack }, Oi.prototype.addKeyframe = function (t, e, n) { this._needsSort = !0; var i, r = this.keyframes, o = r.length, a = !1, s = 6, l = e, u = (st(e) ? (1 == (s = i = st((i = e) && i[0]) ? 2 : 1) && !dt(e[0]) || 2 == i && !dt(e[0][0])) && (a = !0) : dt(e) && !xt(e) ? s = 0 : H(e) ? isNaN(+e) ? (i = di(e)) && (l = i, s = 3) : s = 0 : mt(e) && ((u = P({}, l)).colorStops = F(e.colorStops, function (t) { return { offset: t.offset, color: di(t.color) } }), "linear" === e.type ? s = 4 : "radial" === e.type && (s = 5), l = u), 0 === o ? this.valType = s : s === this.valType && 6 !== s || (a = !0), this.discrete = this.discrete || a, { time: t, value: l, rawValue: e, percent: 0 }); return n && (u.easing = n, u.easingFunc = S(n) ? n : Mn[n] || qn(n)), r.push(u), u }, Oi.prototype.prepare = function (t, e) { var n = this.keyframes; this._needsSort && n.sort(function (t, e) { return t.time - e.time }); for (var i = this.valType, r = n.length, o = n[r - 1], a = this.discrete, s = Ii(i), l = Di(i), u = 0; u < r; u++) { var h = n[u], c = h.value, p = o.value; if (h.percent = h.time / t, !a) if (s && u !== r - 1) { h = void 0; d = void 0; f = void 0; g = void 0; y = void 0; m = void 0; v = void 0; _ = void 0; x = void 0; h = c; var d = p; var f = i; var g = h, y = d; if (g.push && y.push) { var h = g.length, m = y.length; if (h !== m) if (m < h) g.length = m; else for (var v = h; v < m; v++)g.push(1 === f ? y[v] : wi.call(y[v])); for (var _ = g[0] && g[0].length, v = 0; v < g.length; v++)if (1 === f) isNaN(g[v]) && (g[v] = y[v]); else for (var x = 0; x < _; x++)isNaN(g[v][x]) && (g[v][x] = y[v][x]) } } else if (l) { d = void 0; h = void 0; w = void 0; b = void 0; S = void 0; M = void 0; T = void 0; d = c.colorStops; h = p.colorStops; for (var w = d.length, b = h.length, S = b < w ? h : d, h = Math.min(w, b), M = S[h - 1] || { color: [0, 0, 0, 0], offset: 0 }, T = h; T < Math.max(w, b); T++)S.push({ offset: M.offset, color: M.color.slice() }) } } if (!a && 5 !== i && e && this.needsAnimate() && e.needsAnimate() && i === e.valType && !e._finished) { this._additiveTrack = e; for (var C = n[0].value, u = 0; u < r; u++)0 === i ? n[u].additiveValue = n[u].value - C : 3 === i ? n[u].additiveValue = Mi([], n[u].value, C, -1) : Ii(i) && (n[u].additiveValue = (1 === i ? Mi : Ti)([], n[u].value, C, -1)) } }, Oi.prototype.step = function (t, e) { if (!this._finished) { this._additiveTrack && this._additiveTrack._finished && (this._additiveTrack = null); var n, i, r, o, a, s = null != this._additiveTrack, l = s ? "additiveValue" : "value", u = this.valType, h = this.keyframes, c = h.length, p = this.propName, d = 3 === u, f = this._lastFr, g = Math.min; if (1 === c) i = r = h[0]; else { if (e < 0) n = 0; else if (e < this._lastFrP) { for (n = g(f + 1, c - 1); 0 <= n && !(h[n].percent <= e); n--); n = g(n, c - 2) } else { for (n = f; n < c && !(h[n].percent > e); n++); n = g(n - 1, c - 2) } r = h[n + 1], i = h[n] } i && r && (this._lastFr = n, this._lastFrP = e, f = r.percent - i.percent, o = 0 == f ? 1 : g((e - i.percent) / f, 1), r.easingFunc && (o = r.easingFunc(o)), g = s ? this._additiveValue : d ? Ai : t[p], (Ii(u) || d) && (g = g || (this._additiveValue = [])), this.discrete ? t[p] = (o < 1 ? i : r).rawValue : Ii(u) ? (1 === u ? Si : function (t, e, n, i) { for (var r = e.length, o = r && e[0].length, a = 0; a < r; a++) { t[a] || (t[a] = []); for (var s = 0; s < o; s++)t[a][s] = bi(e[a][s], n[a][s], i) } })(g, i[l], r[l], o) : Di(u) ? (f = i[l], a = r[l], t[p] = { type: (u = 4 === u) ? "linear" : "radial", x: bi(f.x, a.x, o), y: bi(f.y, a.y, o), colorStops: F(f.colorStops, function (t, e) { e = a.colorStops[e]; return { offset: bi(t.offset, e.offset, o), color: ki(Si([], t.color, e.color, o)) } }), global: a.global }, u ? (t[p].x2 = bi(f.x2, a.x2, o), t[p].y2 = bi(f.y2, a.y2, o)) : t[p].r = bi(f.r, a.r, o)) : d ? (Si(g, i[l], r[l], o), s || (t[p] = ki(g))) : (u = bi(i[l], r[l], o), s ? this._additiveValue = u : t[p] = u), s) && this._addToTarget(t) } }, Oi.prototype._addToTarget = function (t) { var e = this.valType, n = this.propName, i = this._additiveValue; 0 === e ? t[n] = t[n] + i : 3 === e ? (di(t[n], Ai), Mi(Ai, Ai, i, 1), t[n] = ki(Ai)) : 1 === e ? Mi(t[n], t[n], i, 1) : 2 === e && Ti(t[n], t[n], i, 1) }, Oi), Pi = (n.prototype.getMaxTime = function () { return this._maxTime }, n.prototype.getDelay = function () { return this._delay }, n.prototype.getLoop = function () { return this._loop }, n.prototype.getTarget = function () { return this._target }, n.prototype.changeTarget = function (t) { this._target = t }, n.prototype.when = function (t, e, n) { return this.whenWithKeys(t, e, D(e), n) }, n.prototype.whenWithKeys = function (t, e, n, i) { for (var r = this._tracks, o = 0; o < n.length; o++) { var a = n[o]; if (!(l = r[a])) { var s, l = r[a] = new Li(a), u = void 0, h = this._getAdditiveTrack(a); if (h ? (u = (s = (s = h.keyframes)[s.length - 1]) && s.value, 3 === h.valType && (u = u && ki(u))) : u = this._target[a], null == u) continue; 0 < t && l.addKeyframe(0, Ci(u), i), this._trackKeys.push(a) } l.addKeyframe(t, Ci(e[a]), i) } return this._maxTime = Math.max(this._maxTime, t), this }, n.prototype.pause = function () { this._clip.pause(), this._paused = !0 }, n.prototype.resume = function () { this._clip.resume(), this._paused = !1 }, n.prototype.isPaused = function () { return !!this._paused }, n.prototype.duration = function (t) { return this._maxTime = t, this._force = !0, this }, n.prototype._doneCallback = function () { this._setTracksFinished(), this._clip = null; var t = this._doneCbs; if (t) for (var e = t.length, n = 0; n < e; n++)t[n].call(this) }, n.prototype._abortedCallback = function () { this._setTracksFinished(); var t = this.animation, e = this._abortedCbs; if (t && t.removeClip(this._clip), this._clip = null, e) for (var n = 0; n < e.length; n++)e[n].call(this) }, n.prototype._setTracksFinished = function () { for (var t = this._tracks, e = this._trackKeys, n = 0; n < e.length; n++)t[e[n]].setFinished() }, n.prototype._getAdditiveTrack = function (t) { var e, n = this._additiveAnimators; if (n) for (var i = 0; i < n.length; i++) { var r = n[i].getTrack(t); r && (e = r) } return e }, n.prototype.start = function (t) { if (!(0 < this._started)) { this._started = 1; for (var e, o = this, a = [], n = this._maxTime || 0, i = 0; i < this._trackKeys.length; i++) { var r = this._trackKeys[i], s = this._tracks[r], r = this._getAdditiveTrack(r), l = s.keyframes, u = l.length; s.prepare(n, r), s.needsAnimate() && (!this._allowDiscrete && s.discrete ? ((r = l[u - 1]) && (o._target[s.propName] = r.rawValue), s.setFinished()) : a.push(s)) } return a.length || this._force ? (e = new Zn({ life: n, loop: this._loop, delay: this._delay || 0, onframe: function (t) { o._started = 2; var e = o._additiveAnimators; if (e) { for (var n = !1, i = 0; i < e.length; i++)if (e[i]._clip) { n = !0; break } n || (o._additiveAnimators = null) } for (i = 0; i < a.length; i++)a[i].step(o._target, t); var r = o._onframeCbs; if (r) for (i = 0; i < r.length; i++)r[i](o._target, t) }, ondestroy: function () { o._doneCallback() } }), this._clip = e, this.animation && this.animation.addClip(e), t && e.setEasing(t)) : this._doneCallback(), this } }, n.prototype.stop = function (t) { var e; this._clip && (e = this._clip, t && e.onframe(1), this._abortedCallback()) }, n.prototype.delay = function (t) { return this._delay = t, this }, n.prototype.during = function (t) { return t && (this._onframeCbs || (this._onframeCbs = []), this._onframeCbs.push(t)), this }, n.prototype.done = function (t) { return t && (this._doneCbs || (this._doneCbs = []), this._doneCbs.push(t)), this }, n.prototype.aborted = function (t) { return t && (this._abortedCbs || (this._abortedCbs = []), this._abortedCbs.push(t)), this }, n.prototype.getClip = function () { return this._clip }, n.prototype.getTrack = function (t) { return this._tracks[t] }, n.prototype.getTracks = function () { var e = this; return F(this._trackKeys, function (t) { return e._tracks[t] }) }, n.prototype.stopTracks = function (t, e) { if (!t.length || !this._clip) return !0; for (var n = this._tracks, i = this._trackKeys, r = 0; r < t.length; r++) { var o = n[t[r]]; o && !o.isFinished() && (e ? o.step(this._target, 1) : 1 === this._started && o.step(this._target, 0), o.setFinished()) } for (var a = !0, r = 0; r < i.length; r++)if (!n[i[r]].isFinished()) { a = !1; break } return a && this._abortedCallback(), a }, n.prototype.saveTo = function (t, e, n) { if (t) { e = e || this._trackKeys; for (var i = 0; i < e.length; i++) { var r = e[i], o = this._tracks[r]; o && !o.isFinished() && (o = (o = o.keyframes)[n ? 0 : o.length - 1]) && (t[r] = Ci(o.rawValue)) } } }, n.prototype.__changeFinalValue = function (t, e) { e = e || D(t); for (var n = 0; n < e.length; n++) { var i, r = e[n], o = this._tracks[r]; o && 1 < (i = o.keyframes).length && (i = i.pop(), o.addKeyframe(i.time, t[r]), o.prepare(this._maxTime, o.getAdditiveTrack())) } }, n); function n(t, e, n, i) { this._tracks = {}, this._trackKeys = [], this._maxTime = 0, this._started = 0, this._clip = null, this._target = t, (this._loop = e) && i ? it("Can' use additive animation on looped animation.") : (this._additiveAnimators = i, this._allowDiscrete = n) } function Oi(t) { this.keyframes = [], this.discrete = !1, this._invalid = !1, this._needsSort = !1, this._lastFr = 0, this._lastFrP = 0, this.propName = t } function Ri() { return (new Date).getTime() } u(zi, Ni = le), zi.prototype.addClip = function (t) { t.animation && this.removeClip(t), this._head ? ((this._tail.next = t).prev = this._tail, t.next = null, this._tail = t) : this._head = this._tail = t, t.animation = this }, zi.prototype.addAnimator = function (t) { t.animation = this; t = t.getClip(); t && this.addClip(t) }, zi.prototype.removeClip = function (t) { var e, n; t.animation && (e = t.prev, n = t.next, e ? e.next = n : this._head = n, n ? n.prev = e : this._tail = e, t.next = t.prev = t.animation = null) }, zi.prototype.removeAnimator = function (t) { var e = t.getClip(); e && this.removeClip(e), t.animation = null }, zi.prototype.update = function (t) { for (var e = Ri() - this._pausedTime, n = e - this._time, i = this._head; i;)var r = i.next, i = (i.step(e, n) && (i.ondestroy(), this.removeClip(i)), r); this._time = e, t || (this.trigger("frame", n), this.stage.update && this.stage.update()) }, zi.prototype._startLoop = function () { var e = this; this._running = !0, Sn(function t() { e._running && (Sn(t), !e._paused) && e.update() }) }, zi.prototype.start = function () { this._running || (this._time = Ri(), this._pausedTime = 0, this._startLoop()) }, zi.prototype.stop = function () { this._running = !1 }, zi.prototype.pause = function () { this._paused || (this._pauseStart = Ri(), this._paused = !0) }, zi.prototype.resume = function () { this._paused && (this._pausedTime += Ri() - this._pauseStart, this._paused = !1) }, zi.prototype.clear = function () { for (var t = this._head; t;) { var e = t.next; t.prev = t.next = t.animation = null, t = e } this._head = this._tail = null }, zi.prototype.isFinished = function () { return null == this._head }, zi.prototype.animate = function (t, e) { e = e || {}, this.start(); t = new Pi(t, e.loop); return this.addAnimator(t), t }; var Ni, Ei = zi; function zi(t) { var e = Ni.call(this) || this; return e._running = !1, e._time = 0, e._pausedTime = 0, e._pauseStart = 0, e._paused = !1, e.stage = (t = t || {}).stage || {}, e } var Bi, Fi = p.domSupported, Vi = (Bi = { pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1 }, { mouse: i = ["click", "dblclick", "mousewheel", "wheel", "mouseout", "mouseup", "mousedown", "mousemove", "contextmenu"], touch: ["touchstart", "touchend", "touchmove"], pointer: F(i, function (t) { var e = t.replace("mouse", "pointer"); return Bi.hasOwnProperty(e) ? e : t }) }), Hi = ["mousemove", "mouseup"], Wi = ["pointermove", "pointerup"], Gi = !1; function Ui(t) { t = t.pointerType; return "pen" === t || "touch" === t } function Xi(t) { t && (t.zrByTouch = !0) } function Yi(t, e) { for (var n = e, i = !1; n && 9 !== n.nodeType && !(i = n.domBelongToZr || n !== e && n === t.painterRoot);)n = n.parentNode; return i } var qi = function (t, e) { this.stopPropagation = Ft, this.stopImmediatePropagation = Ft, this.preventDefault = Ft, this.type = e.type, this.target = this.currentTarget = t.dom, this.pointerType = e.pointerType, this.clientX = e.clientX, this.clientY = e.clientY }, Zi = { mousedown: function (t) { t = Te(this.dom, t), this.__mayPointerCapture = [t.zrX, t.zrY], this.trigger("mousedown", t) }, mousemove: function (t) { t = Te(this.dom, t); var e = this.__mayPointerCapture; !e || t.zrX === e[0] && t.zrY === e[1] || this.__togglePointerCapture(!0), this.trigger("mousemove", t) }, mouseup: function (t) { t = Te(this.dom, t), this.__togglePointerCapture(!1), this.trigger("mouseup", t) }, mouseout: function (t) { Yi(this, (t = Te(this.dom, t)).toElement || t.relatedTarget) || (this.__pointerCapturing && (t.zrEventControl = "no_globalout"), this.trigger("mouseout", t)) }, wheel: function (t) { Gi = !0, t = Te(this.dom, t), this.trigger("mousewheel", t) }, mousewheel: function (t) { Gi || (t = Te(this.dom, t), this.trigger("mousewheel", t)) }, touchstart: function (t) { Xi(t = Te(this.dom, t)), this.__lastTouchMoment = new Date, this.handler.processGesture(t, "start"), Zi.mousemove.call(this, t), Zi.mousedown.call(this, t) }, touchmove: function (t) { Xi(t = Te(this.dom, t)), this.handler.processGesture(t, "change"), Zi.mousemove.call(this, t) }, touchend: function (t) { Xi(t = Te(this.dom, t)), this.handler.processGesture(t, "end"), Zi.mouseup.call(this, t), +new Date - +this.__lastTouchMoment < 300 && Zi.click.call(this, t) }, pointerdown: function (t) { Zi.mousedown.call(this, t) }, pointermove: function (t) { Ui(t) || Zi.mousemove.call(this, t) }, pointerup: function (t) { Zi.mouseup.call(this, t) }, pointerout: function (t) { Ui(t) || Zi.mouseout.call(this, t) } }, ji = (O(["click", "dblclick", "contextmenu"], function (e) { Zi[e] = function (t) { t = Te(this.dom, t), this.trigger(e, t) } }), { pointermove: function (t) { Ui(t) || ji.mousemove.call(this, t) }, pointerup: function (t) { ji.mouseup.call(this, t) }, mousemove: function (t) { this.trigger("mousemove", t) }, mouseup: function (t) { var e = this.__pointerCapturing; this.__togglePointerCapture(!1), this.trigger("mouseup", t), e && (t.zrEventControl = "only_globalout", this.trigger("mouseout", t)) } }); function Ki(i, r) { var o = r.domHandlers; p.pointerEventsSupported ? O(Vi.pointer, function (e) { Qi(r, e, function (t) { o[e].call(i, t) }) }) : (p.touchEventsSupported && O(Vi.touch, function (n) { Qi(r, n, function (t) { var e; o[n].call(i, t), (e = r).touching = !0, null != e.touchTimer && (clearTimeout(e.touchTimer), e.touchTimer = null), e.touchTimer = setTimeout(function () { e.touching = !1, e.touchTimer = null }, 700) }) }), O(Vi.mouse, function (e) { Qi(r, e, function (t) { t = Me(t), r.touching || o[e].call(i, t) }) })) } function $i(i, r) { function t(n) { Qi(r, n, function (t) { var e; t = Me(t), Yi(i, t.target) || (e = t, t = Te(i.dom, new qi(i, e), !0), r.domHandlers[n].call(i, t)) }, { capture: !0 }) } p.pointerEventsSupported ? O(Wi, t) : p.touchEventsSupported || O(Hi, t) } function Qi(t, e, n, i) { t.mounted[e] = n, t.listenerOpts[e] = i, t.domTarget.addEventListener(e, n, i) } function Ji(t) { var e, n, i, r, o, a = t.mounted; for (e in a) a.hasOwnProperty(e) && (n = t.domTarget, i = e, r = a[e], o = t.listenerOpts[e], n.removeEventListener(i, r, o)); t.mounted = {} } function tr(t, e) { this.mounted = {}, this.listenerOpts = {}, this.touching = !1, this.domTarget = t, this.domHandlers = e } u(ir, er = le), ir.prototype.dispose = function () { Ji(this._localHandlerScope), Fi && Ji(this._globalHandlerScope) }, ir.prototype.setCursor = function (t) { this.dom.style && (this.dom.style.cursor = t || "default") }, ir.prototype.__togglePointerCapture = function (t) { var e; this.__mayPointerCapture = null, Fi && +this.__pointerCapturing ^ +t && (this.__pointerCapturing = t, e = this._globalHandlerScope, t ? $i(this, e) : Ji(e)) }; var er, nr = ir; function ir(t, e) { var n = er.call(this) || this; return n.__pointerCapturing = !1, n.dom = t, n.painterRoot = e, n._localHandlerScope = new tr(t, Zi), Fi && (n._globalHandlerScope = new tr(document, ji)), Ki(n, n._localHandlerScope), n } var i = 1, rr = i = p.hasGlobalWindow ? Math.max(window.devicePixelRatio || window.screen && window.screen.deviceXDPI / window.screen.logicalXDPI || 1, 1) : i, or = "#333", ar = "#ccc", sr = Pe; function lr(t) { return 5e-5 < t || t < -5e-5 } var ur = [], hr = [], cr = Le(), pr = Math.abs, dr = (fr.prototype.getLocalTransform = function (t) { return fr.getLocalTransform(this, t) }, fr.prototype.setPosition = function (t) { this.x = t[0], this.y = t[1] }, fr.prototype.setScale = function (t) { this.scaleX = t[0], this.scaleY = t[1] }, fr.prototype.setSkew = function (t) { this.skewX = t[0], this.skewY = t[1] }, fr.prototype.setOrigin = function (t) { this.originX = t[0], this.originY = t[1] }, fr.prototype.needLocalTransform = function () { return lr(this.rotation) || lr(this.x) || lr(this.y) || lr(this.scaleX - 1) || lr(this.scaleY - 1) || lr(this.skewX) || lr(this.skewY) }, fr.prototype.updateTransform = function () { var t = this.parent && this.parent.transform, e = this.needLocalTransform(), n = this.transform; e || t ? (n = n || Le(), e ? this.getLocalTransform(n) : sr(n), t && (e ? Re(n, t, n) : Oe(n, t)), this.transform = n, this._resolveGlobalScaleRatio(n)) : n && (sr(n), this.invTransform = null) }, fr.prototype._resolveGlobalScaleRatio = function (t) { var e, n, i = this.globalScaleRatio; null != i && 1 !== i && (this.getGlobalScale(ur), n = ((ur[1] - (n = ur[1] < 0 ? -1 : 1)) * i + n) / ur[1] || 0, t[0] *= i = ((ur[0] - (e = ur[0] < 0 ? -1 : 1)) * i + e) / ur[0] || 0, t[1] *= i, t[2] *= n, t[3] *= n), this.invTransform = this.invTransform || Le(), Be(this.invTransform, t) }, fr.prototype.getComputedTransform = function () { for (var t = this, e = []; t;)e.push(t), t = t.parent; for (; t = e.pop();)t.updateTransform(); return this.transform }, fr.prototype.setLocalTransform = function (t) { var e, n, i, r; t && (r = t[0] * t[0] + t[1] * t[1], i = t[2] * t[2] + t[3] * t[3], e = Math.atan2(t[1], t[0]), n = Math.PI / 2 + e - Math.atan2(t[3], t[2]), i = Math.sqrt(i) * Math.cos(n), r = Math.sqrt(r), this.skewX = n, this.skewY = 0, this.rotation = -e, this.x = +t[4], this.y = +t[5], this.scaleX = r, this.scaleY = i, this.originX = 0, this.originY = 0) }, fr.prototype.decomposeTransform = function () { var t, e, n; this.transform && (e = this.parent, t = this.transform, e && e.transform && (Re(hr, e.invTransform, t), t = hr), e = this.originX, n = this.originY, (e || n) && (cr[4] = e, cr[5] = n, Re(hr, t, cr), hr[4] -= e, hr[5] -= n, t = hr), this.setLocalTransform(t)) }, fr.prototype.getGlobalScale = function (t) { var e = this.transform; return t = t || [], e ? (t[0] = Math.sqrt(e[0] * e[0] + e[1] * e[1]), t[1] = Math.sqrt(e[2] * e[2] + e[3] * e[3]), e[0] < 0 && (t[0] = -t[0]), e[3] < 0 && (t[1] = -t[1])) : (t[0] = 1, t[1] = 1), t }, fr.prototype.transformCoordToLocal = function (t, e) { t = [t, e], e = this.invTransform; return e && ee(t, t, e), t }, fr.prototype.transformCoordToGlobal = function (t, e) { t = [t, e], e = this.transform; return e && ee(t, t, e), t }, fr.prototype.getLineScale = function () { var t = this.transform; return t && 1e-10 < pr(t[0] - 1) && 1e-10 < pr(t[3] - 1) ? Math.sqrt(pr(t[0] * t[3] - t[2] * t[1])) : 1 }, fr.prototype.copyTransform = function (t) { for (var e = this, n = t, i = 0; i < gr.length; i++) { var r = gr[i]; e[r] = n[r] } }, fr.getLocalTransform = function (t, e) { e = e || []; var n = t.originX || 0, i = t.originY || 0, r = t.scaleX, o = t.scaleY, a = t.anchorX, s = t.anchorY, l = t.rotation || 0, u = t.x, h = t.y, c = t.skewX ? Math.tan(t.skewX) : 0, t = t.skewY ? Math.tan(-t.skewY) : 0; return n || i || a || s ? (e[4] = -(a = n + a) * r - c * (s = i + s) * o, e[5] = -s * o - t * a * r) : e[4] = e[5] = 0, e[0] = r, e[3] = o, e[1] = t * r, e[2] = c * o, l && Ee(e, e, l), e[4] += n + u, e[5] += i + h, e }, fr.initDefaultProps = ((i = fr.prototype).scaleX = i.scaleY = i.globalScaleRatio = 1, void (i.x = i.y = i.originX = i.originY = i.skewX = i.skewY = i.rotation = i.anchorX = i.anchorY = 0)), fr); function fr() { } var gr = ["x", "y", "originX", "originY", "anchorX", "anchorY", "rotation", "scaleX", "scaleY", "skewX", "skewY"]; var yr = {}; function mr(t, e) { var n = yr[e = e || j], i = (n = n || (yr[e] = new Jn(500))).get(t); return null == i && (i = W.measureText(t, e).width, n.put(t, i)), i } function vr(t, e, n, i) { t = mr(t, e), e = br(e), n = xr(0, t, n), i = wr(0, e, i); return new z(n, i, t, e) } function _r(t, e, n, i) { var r = ((t || "") + "").split("\n"); if (1 === r.length) return vr(r[0], e, n, i); for (var o = new z(0, 0, 0, 0), a = 0; a < r.length; a++) { var s = vr(r[a], e, n, i); 0 === a ? o.copy(s) : o.union(s) } return o } function xr(t, e, n) { return "right" === n ? t -= e : "center" === n && (t -= e / 2), t } function wr(t, e, n) { return "middle" === n ? t -= e / 2 : "bottom" === n && (t -= e), t } function br(t) { return mr("国", t) } function Sr(t, e) { return "string" == typeof t ? 0 <= t.lastIndexOf("%") ? parseFloat(t) / 100 * e : parseFloat(t) : t } function Mr(t, e, n) { var i = e.position || "inside", r = null != e.distance ? e.distance : 5, o = n.height, a = n.width, s = o / 2, l = n.x, u = n.y, h = "left", c = "top"; if (i instanceof Array) l += Sr(i[0], n.width), u += Sr(i[1], n.height), c = h = null; else switch (i) { case "left": l -= r, u += s, h = "right", c = "middle"; break; case "right": l += r + a, u += s, c = "middle"; break; case "top": l += a / 2, u -= r, h = "center", c = "bottom"; break; case "bottom": l += a / 2, u += o + r, h = "center"; break; case "inside": l += a / 2, u += s, h = "center", c = "middle"; break; case "insideLeft": l += r, u += s, c = "middle"; break; case "insideRight": l += a - r, u += s, h = "right", c = "middle"; break; case "insideTop": l += a / 2, u += r, h = "center"; break; case "insideBottom": l += a / 2, u += o - r, h = "center", c = "bottom"; break; case "insideTopLeft": l += r, u += r; break; case "insideTopRight": l += a - r, u += r, h = "right"; break; case "insideBottomLeft": l += r, u += o - r, c = "bottom"; break; case "insideBottomRight": l += a - r, u += o - r, h = "right", c = "bottom" }return (t = t || {}).x = l, t.y = u, t.align = h, t.verticalAlign = c, t } var Tr, Cr = "__zr_normal__", kr = gr.concat(["ignore"]), Dr = lt(gr, function (t, e) { return t[e] = !0, t }, { ignore: !1 }), Ir = {}, Ar = new z(0, 0, 0, 0), i = (r.prototype._init = function (t) { this.attr(t) }, r.prototype.drift = function (t, e, n) { switch (this.draggable) { case "horizontal": e = 0; break; case "vertical": t = 0 }var i = this.transform; (i = i || (this.transform = [1, 0, 0, 1, 0, 0]))[4] += t, i[5] += e, this.decomposeTransform(), this.markRedraw() }, r.prototype.beforeUpdate = function () { }, r.prototype.afterUpdate = function () { }, r.prototype.update = function () { this.updateTransform(), this.__dirty && this.updateInnerText() }, r.prototype.updateInnerText = function (t) { var e, n, i, r, o, a, s, l, u, h, c = this._textContent; !c || c.ignore && !t || (this.textConfig || (this.textConfig = {}), l = (t = this.textConfig).local, i = n = void 0, r = !1, (e = c.innerTransformable).parent = l ? this : null, h = !1, e.copyTransform(c), null != t.position && (u = Ar, t.layoutRect ? u.copy(t.layoutRect) : u.copy(this.getBoundingRect()), l || u.applyTransform(this.transform), this.calculateTextPosition ? this.calculateTextPosition(Ir, t, u) : Mr(Ir, t, u), e.x = Ir.x, e.y = Ir.y, n = Ir.align, i = Ir.verticalAlign, o = t.origin) && null != t.rotation && (s = a = void 0, s = "center" === o ? (a = .5 * u.width, .5 * u.height) : (a = Sr(o[0], u.width), Sr(o[1], u.height)), h = !0, e.originX = -e.x + a + (l ? 0 : u.x), e.originY = -e.y + s + (l ? 0 : u.y)), null != t.rotation && (e.rotation = t.rotation), (o = t.offset) && (e.x += o[0], e.y += o[1], h || (e.originX = -o[0], e.originY = -o[1])), a = null == t.inside ? "string" == typeof t.position && 0 <= t.position.indexOf("inside") : t.inside, s = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {}), h = u = l = void 0, a && this.canBeInsideText() ? (l = t.insideFill, u = t.insideStroke, null != l && "auto" !== l || (l = this.getInsideTextFill()), null != u && "auto" !== u || (u = this.getInsideTextStroke(l), h = !0)) : (l = t.outsideFill, u = t.outsideStroke, null != l && "auto" !== l || (l = this.getOutsideFill()), null != u && "auto" !== u || (u = this.getOutsideStroke(l), h = !0)), (l = l || "#000") === s.fill && u === s.stroke && h === s.autoStroke && n === s.align && i === s.verticalAlign || (r = !0, s.fill = l, s.stroke = u, s.autoStroke = h, s.align = n, s.verticalAlign = i, c.setDefaultTextStyle(s)), c.__dirty |= yn, r && c.dirtyStyle(!0)) }, r.prototype.canBeInsideText = function () { return !0 }, r.prototype.getInsideTextFill = function () { return "#fff" }, r.prototype.getInsideTextStroke = function (t) { return "#000" }, r.prototype.getOutsideFill = function () { return this.__zr && this.__zr.isDarkMode() ? ar : or }, r.prototype.getOutsideStroke = function (t) { for (var e = this.__zr && this.__zr.getBackgroundColor(), n = "string" == typeof e && di(e), i = (n = n || [255, 255, 255, 1])[3], r = this.__zr.isDarkMode(), o = 0; o < 3; o++)n[o] = n[o] * i + (r ? 0 : 255) * (1 - i); return n[3] = 1, vi(n, "rgba") }, r.prototype.traverse = function (t, e) { }, r.prototype.attrKV = function (t, e) { "textConfig" === t ? this.setTextConfig(e) : "textContent" === t ? this.setTextContent(e) : "clipPath" === t ? this.setClipPath(e) : "extra" === t ? (this.extra = this.extra || {}, P(this.extra, e)) : this[t] = e }, r.prototype.hide = function () { this.ignore = !0, this.markRedraw() }, r.prototype.show = function () { this.ignore = !1, this.markRedraw() }, r.prototype.attr = function (t, e) { if ("string" == typeof t) this.attrKV(t, e); else if (R(t)) for (var n = D(t), i = 0; i < n.length; i++) { var r = n[i]; this.attrKV(r, t[r]) } return this.markRedraw(), this }, r.prototype.saveCurrentToNormalState = function (t) { this._innerSaveToNormal(t); for (var e = this._normalState, n = 0; n < this.animators.length; n++) { var i = this.animators[n], r = i.__fromStateTransition; i.getLoop() || r && r !== Cr || (r = (r = i.targetName) ? e[r] : e, i.saveTo(r)) } }, r.prototype._innerSaveToNormal = function (t) { var e = (e = this._normalState) || (this._normalState = {}); t.textConfig && !e.textConfig && (e.textConfig = this.textConfig), this._savePrimaryToNormal(t, e, kr) }, r.prototype._savePrimaryToNormal = function (t, e, n) { for (var i = 0; i < n.length; i++) { var r = n[i]; null == t[r] || r in e || (e[r] = this[r]) } }, r.prototype.hasState = function () { return 0 < this.currentStates.length }, r.prototype.getState = function (t) { return this.states[t] }, r.prototype.ensureState = function (t) { var e = this.states; return e[t] || (e[t] = {}), e[t] }, r.prototype.clearStates = function (t) { this.useState(Cr, !1, t) }, r.prototype.useState = function (t, e, n, i) { var r = t === Cr; if (this.hasState() || !r) { var o, a = this.currentStates, s = this.stateTransition; if (!(0 <= k(a, t)) || !e && 1 !== a.length) { if ((o = (o = this.stateProxy && !r ? this.stateProxy(t) : o) || this.states && this.states[t]) || r) return r || this.saveCurrentToNormalState(o), (a = !!(o && o.hoverLayer || i)) && this._toggleHoverLayerFlag(!0), this._applyStateObj(t, o, this._normalState, e, !n && !this.__inHover && s && 0 < s.duration, s), i = this._textContent, s = this._textGuide, i && i.useState(t, e, n, a), s && s.useState(t, e, n, a), r ? (this.currentStates = [], this._normalState = {}) : e ? this.currentStates.push(t) : this.currentStates = [t], this._updateAnimationTargets(), this.markRedraw(), !a && this.__inHover && (this._toggleHoverLayerFlag(!1), this.__dirty &= ~yn), o; it("State " + t + " not exists.") } } }, r.prototype.useStates = function (t, e, n) { if (t.length) { var i = [], r = this.currentStates, o = t.length, a = o === r.length; if (a) for (var s = 0; s < o; s++)if (t[s] !== r[s]) { a = !1; break } if (!a) { for (s = 0; s < o; s++) { var l = t[s], u = void 0; (u = (u = this.stateProxy ? this.stateProxy(l, t) : u) || this.states[l]) && i.push(u) } var h = i[o - 1], h = !!(h && h.hoverLayer || n), n = (h && this._toggleHoverLayerFlag(!0), this._mergeStates(i)), c = this.stateTransition, n = (this.saveCurrentToNormalState(n), this._applyStateObj(t.join(","), n, this._normalState, !1, !e && !this.__inHover && c && 0 < c.duration, c), this._textContent), c = this._textGuide; n && n.useStates(t, e, h), c && c.useStates(t, e, h), this._updateAnimationTargets(), this.currentStates = t.slice(), this.markRedraw(), !h && this.__inHover && (this._toggleHoverLayerFlag(!1), this.__dirty &= ~yn) } } else this.clearStates() }, r.prototype._updateAnimationTargets = function () { for (var t = 0; t < this.animators.length; t++) { var e = this.animators[t]; e.targetName && e.changeTarget(this[e.targetName]) } }, r.prototype.removeState = function (t) { var e, t = k(this.currentStates, t); 0 <= t && ((e = this.currentStates.slice()).splice(t, 1), this.useStates(e)) }, r.prototype.replaceState = function (t, e, n) { var i = this.currentStates.slice(), t = k(i, t), r = 0 <= k(i, e); 0 <= t ? r ? i.splice(t, 1) : i[t] = e : n && !r && i.push(e), this.useStates(i) }, r.prototype.toggleState = function (t, e) { e ? this.useState(t, !0) : this.removeState(t) }, r.prototype._mergeStates = function (t) { for (var e, n = {}, i = 0; i < t.length; i++) { var r = t[i]; P(n, r), r.textConfig && P(e = e || {}, r.textConfig) } return e && (n.textConfig = e), n }, r.prototype._applyStateObj = function (t, e, n, i, r, o) { var a = !(e && i); e && e.textConfig ? (this.textConfig = P({}, (i ? this : n).textConfig), P(this.textConfig, e.textConfig)) : a && n.textConfig && (this.textConfig = n.textConfig); for (var s = {}, l = !1, u = 0; u < kr.length; u++) { var h = kr[u], c = r && Dr[h]; e && null != e[h] ? c ? (l = !0, s[h] = e[h]) : this[h] = e[h] : a && null != n[h] && (c ? (l = !0, s[h] = n[h]) : this[h] = n[h]) } if (!r) for (u = 0; u < this.animators.length; u++) { var p = this.animators[u], d = p.targetName; p.getLoop() || p.__changeFinalValue(d ? (e || n)[d] : e || n) } l && this._transitionState(t, s, o) }, r.prototype._attachComponent = function (t) { var e; t.__zr && !t.__hostTarget || t !== this && ((e = this.__zr) && t.addSelfToZr(e), t.__zr = e, t.__hostTarget = this) }, r.prototype._detachComponent = function (t) { t.__zr && t.removeSelfFromZr(t.__zr), t.__zr = null, t.__hostTarget = null }, r.prototype.getClipPath = function () { return this._clipPath }, r.prototype.setClipPath = function (t) { this._clipPath && this._clipPath !== t && this.removeClipPath(), this._attachComponent(t), this._clipPath = t, this.markRedraw() }, r.prototype.removeClipPath = function () { var t = this._clipPath; t && (this._detachComponent(t), this._clipPath = null, this.markRedraw()) }, r.prototype.getTextContent = function () { return this._textContent }, r.prototype.setTextContent = function (t) { var e = this._textContent; e !== t && (e && e !== t && this.removeTextContent(), t.innerTransformable = new dr, this._attachComponent(t), this._textContent = t, this.markRedraw()) }, r.prototype.setTextConfig = function (t) { this.textConfig || (this.textConfig = {}), P(this.textConfig, t), this.markRedraw() }, r.prototype.removeTextConfig = function () { this.textConfig = null, this.markRedraw() }, r.prototype.removeTextContent = function () { var t = this._textContent; t && (t.innerTransformable = null, this._detachComponent(t), this._textContent = null, this._innerTextDefaultStyle = null, this.markRedraw()) }, r.prototype.getTextGuideLine = function () { return this._textGuide }, r.prototype.setTextGuideLine = function (t) { this._textGuide && this._textGuide !== t && this.removeTextGuideLine(), this._attachComponent(t), this._textGuide = t, this.markRedraw() }, r.prototype.removeTextGuideLine = function () { var t = this._textGuide; t && (this._detachComponent(t), this._textGuide = null, this.markRedraw()) }, r.prototype.markRedraw = function () { this.__dirty |= yn; var t = this.__zr; t && (this.__inHover ? t.refreshHover() : t.refresh()), this.__hostTarget && this.__hostTarget.markRedraw() }, r.prototype.dirty = function () { this.markRedraw() }, r.prototype._toggleHoverLayerFlag = function (t) { this.__inHover = t; var e = this._textContent, n = this._textGuide; e && (e.__inHover = t), n && (n.__inHover = t) }, r.prototype.addSelfToZr = function (t) { if (this.__zr !== t) { this.__zr = t; var e = this.animators; if (e) for (var n = 0; n < e.length; n++)t.animation.addAnimator(e[n]); this._clipPath && this._clipPath.addSelfToZr(t), this._textContent && this._textContent.addSelfToZr(t), this._textGuide && this._textGuide.addSelfToZr(t) } }, r.prototype.removeSelfFromZr = function (t) { if (this.__zr) { this.__zr = null; var e = this.animators; if (e) for (var n = 0; n < e.length; n++)t.animation.removeAnimator(e[n]); this._clipPath && this._clipPath.removeSelfFromZr(t), this._textContent && this._textContent.removeSelfFromZr(t), this._textGuide && this._textGuide.removeSelfFromZr(t) } }, r.prototype.animate = function (t, e, n) { var i = t ? this[t] : this, i = new Pi(i, e, n); return t && (i.targetName = t), this.addAnimator(i, t), i }, r.prototype.addAnimator = function (n, t) { var e = this.__zr, i = this; n.during(function () { i.updateDuringAnimation(t) }).done(function () { var t = i.animators, e = k(t, n); 0 <= e && t.splice(e, 1) }), this.animators.push(n), e && e.animation.addAnimator(n), e && e.wakeUp() }, r.prototype.updateDuringAnimation = function (t) { this.markRedraw() }, r.prototype.stopAnimation = function (t, e) { for (var n = this.animators, i = n.length, r = [], o = 0; o < i; o++) { var a = n[o]; t && t !== a.scope ? r.push(a) : a.stop(e) } return this.animators = r, this }, r.prototype.animateTo = function (t, e, n) { Pr(this, t, e, n) }, r.prototype.animateFrom = function (t, e, n) { Pr(this, t, e, n, !0) }, r.prototype._transitionState = function (t, e, n, i) { for (var r = Pr(this, e, n, i), o = 0; o < r.length; o++)r[o].__fromStateTransition = t }, r.prototype.getBoundingRect = function () { return null }, r.prototype.getPaintRect = function () { return null }, r.initDefaultProps = ((Tr = r.prototype).type = "element", Tr.name = "", Tr.ignore = Tr.silent = Tr.isGroup = Tr.draggable = Tr.dragging = Tr.ignoreClip = Tr.__inHover = !1, Tr.__dirty = yn, void (Object.defineProperty && (Lr("position", "_legacyPos", "x", "y"), Lr("scale", "_legacyScale", "scaleX", "scaleY"), Lr("origin", "_legacyOrigin", "originX", "originY")))), r); function r(t) { this.id = et++, this.animators = [], this.currentStates = [], this.states = {}, this._init(t) } function Lr(t, e, n, i) { function r(e, t) { Object.defineProperty(t, 0, { get: function () { return e[n] }, set: function (t) { e[n] = t } }), Object.defineProperty(t, 1, { get: function () { return e[i] }, set: function (t) { e[i] = t } }) } Object.defineProperty(Tr, t, { get: function () { return this[e] || r(this, this[e] = []), this[e] }, set: function (t) { this[n] = t[0], this[i] = t[1], this[e] = t, r(this, t) } }) } function Pr(t, e, n, i, r) { function o() { u = !0, --l <= 0 && (u ? h && h() : c && c()) } function a() { --l <= 0 && (u ? h && h() : c && c()) } var s = [], l = (!function t(e, n, i, r, o, a, s, l) { for (var u = D(r), h = o.duration, c = o.delay, p = o.additive, d = o.setToFinal, f = !R(a), g = e.animators, y = [], m = 0; m < u.length; m++) { var v = u[m], _ = r[v]; null != _ && null != i[v] && (f || a[v]) ? !R(_) || st(_) || mt(_) ? y.push(v) : n ? l || (i[v] = _, e.updateDuringAnimation(n)) : t(e, v, i[v], _, o, a && a[v], s, l) : l || (i[v] = _, e.updateDuringAnimation(n), y.push(v)) } var x = y.length; if (!p && x) for (var w = 0; w < g.length; w++) { var b; (S = g[w]).targetName === n && S.stopTracks(y) && (b = k(g, S), g.splice(b, 1)) } if (o.force || (x = (y = ut(y, function (t) { return !Nr(r[t], i[t]) })).length), 0 < x || o.force && !s.length) { var S, M = void 0, T = void 0, C = void 0; if (l) for (T = {}, d && (M = {}), w = 0; w < x; w++)T[v = y[w]] = i[v], d ? M[v] = r[v] : i[v] = r[v]; else if (d) for (C = {}, w = 0; w < x; w++)C[v = y[w]] = Ci(i[v]), Rr(i, r, v); (S = new Pi(i, !1, !1, p ? ut(g, function (t) { return t.targetName === n }) : null)).targetName = n, o.scope && (S.scope = o.scope), d && M && S.whenWithKeys(0, M, y), C && S.whenWithKeys(0, C, y), S.whenWithKeys(null == h ? 500 : h, l ? T : r, y).delay(c || 0), e.addAnimator(S, n), s.push(S) } }(t, "", t, e, n = n || {}, i, s, r), s.length), u = !1, h = n.done, c = n.aborted; l || h && h(), 0 < s.length && n.during && s[0].during(function (t, e) { n.during(e) }); for (var p = 0; p < s.length; p++) { var d = s[p]; d.done(o), d.aborted(a), n.force && d.duration(n.duration), d.start(n.easing) } return s } function Or(t, e, n) { for (var i = 0; i < n; i++)t[i] = e[i] } function Rr(t, e, n) { if (st(e[n])) if (st(t[n]) || (t[n] = []), gt(e[n])) { var i = e[n].length; t[n].length !== i && (t[n] = new e[n].constructor(i), Or(t[n], e[n], i)) } else { var r = e[n], o = t[n], a = r.length; if (st(r[0])) for (var s = r[0].length, l = 0; l < a; l++)o[l] ? Or(o[l], r[l], s) : o[l] = Array.prototype.slice.call(r[l]); else Or(o, r, a); o.length = r.length } else t[n] = e[n] } function Nr(t, e) { return t === e || st(t) && st(e) && function (t, e) { var n = t.length; if (n !== e.length) return !1; for (var i = 0; i < n; i++)if (t[i] !== e[i]) return !1; return !0 }(t, e) } at(i, le), at(i, dr); u(Br, Er = i), Br.prototype.childrenRef = function () { return this._children }, Br.prototype.children = function () { return this._children.slice() }, Br.prototype.childAt = function (t) { return this._children[t] }, Br.prototype.childOfName = function (t) { for (var e = this._children, n = 0; n < e.length; n++)if (e[n].name === t) return e[n] }, Br.prototype.childCount = function () { return this._children.length }, Br.prototype.add = function (t) { return t && t !== this && t.parent !== this && (this._children.push(t), this._doAdd(t)), this }, Br.prototype.addBefore = function (t, e) { var n; return t && t !== this && t.parent !== this && e && e.parent === this && 0 <= (e = (n = this._children).indexOf(e)) && (n.splice(e, 0, t), this._doAdd(t)), this }, Br.prototype.replace = function (t, e) { t = k(this._children, t); return 0 <= t && this.replaceAt(e, t), this }, Br.prototype.replaceAt = function (t, e) { var n = this._children, i = n[e]; return t && t !== this && t.parent !== this && t !== i && (n[e] = t, i.parent = null, (n = this.__zr) && i.removeSelfFromZr(n), this._doAdd(t)), this }, Br.prototype._doAdd = function (t) { t.parent && t.parent.remove(t); var e = (t.parent = this).__zr; e && e !== t.__zr && t.addSelfToZr(e), e && e.refresh() }, Br.prototype.remove = function (t) { var e = this.__zr, n = this._children, i = k(n, t); return i < 0 || (n.splice(i, 1), t.parent = null, e && t.removeSelfFromZr(e), e && e.refresh()), this }, Br.prototype.removeAll = function () { for (var t = this._children, e = this.__zr, n = 0; n < t.length; n++) { var i = t[n]; e && i.removeSelfFromZr(e), i.parent = null } return t.length = 0, this }, Br.prototype.eachChild = function (t, e) { for (var n = this._children, i = 0; i < n.length; i++) { var r = n[i]; t.call(e, r, i) } return this }, Br.prototype.traverse = function (t, e) { for (var n = 0; n < this._children.length; n++) { var i = this._children[n], r = t.call(e, i); i.isGroup && !r && i.traverse(t, e) } return this }, Br.prototype.addSelfToZr = function (t) { Er.prototype.addSelfToZr.call(this, t); for (var e = 0; e < this._children.length; e++)this._children[e].addSelfToZr(t) }, Br.prototype.removeSelfFromZr = function (t) { Er.prototype.removeSelfFromZr.call(this, t); for (var e = 0; e < this._children.length; e++)this._children[e].removeSelfFromZr(t) }, Br.prototype.getBoundingRect = function (t) { for (var e = new z(0, 0, 0, 0), n = t || this._children, i = [], r = null, o = 0; o < n.length; o++) { var a, s = n[o]; s.ignore || s.invisible || (a = s.getBoundingRect(), (s = s.getLocalTransform(i)) ? (z.applyTransform(e, a, s), (r = r || e.clone()).union(e)) : (r = r || a.clone()).union(a)) } return r || e }; var Er, zr = Br; function Br(t) { var e = Er.call(this) || this; return e.isGroup = !0, e._children = [], e.attr(t), e } zr.prototype.type = "group"; var Fr = {}, Vr = {}; o.prototype.add = function (t) { t && (this.storage.addRoot(t), t.addSelfToZr(this), this.refresh()) }, o.prototype.remove = function (t) { t && (this.storage.delRoot(t), t.removeSelfFromZr(this), this.refresh()) }, o.prototype.configLayer = function (t, e) { this.painter.configLayer && this.painter.configLayer(t, e), this.refresh() }, o.prototype.setBackgroundColor = function (t) { this.painter.setBackgroundColor && this.painter.setBackgroundColor(t), this.refresh(), this._backgroundColor = t, this._darkMode = function (t) { if (t) { if ("string" == typeof t) return _i(t, 1) < .4; if (t.colorStops) { for (var e = t.colorStops, n = 0, i = e.length, r = 0; r < i; r++)n += _i(e[r].color, 1); return (n /= i) < .4 } } return !1 }(t) }, o.prototype.getBackgroundColor = function () { return this._backgroundColor }, o.prototype.setDarkMode = function (t) { this._darkMode = t }, o.prototype.isDarkMode = function () { return this._darkMode }, o.prototype.refreshImmediately = function (t) { t || this.animation.update(!0), this._needsRefresh = !1, this.painter.refresh(), this._needsRefresh = !1 }, o.prototype.refresh = function () { this._needsRefresh = !0, this.animation.start() }, o.prototype.flush = function () { this._flush(!1) }, o.prototype._flush = function (t) { var e, n = Ri(), t = (this._needsRefresh && (e = !0, this.refreshImmediately(t)), this._needsRefreshHover && (e = !0, this.refreshHoverImmediately()), Ri()); e ? (this._stillFrameAccum = 0, this.trigger("rendered", { elapsedTime: t - n })) : 0 < this._sleepAfterStill && (this._stillFrameAccum++, this._stillFrameAccum > this._sleepAfterStill) && this.animation.stop() }, o.prototype.setSleepAfterStill = function (t) { this._sleepAfterStill = t }, o.prototype.wakeUp = function () { this.animation.start(), this._stillFrameAccum = 0 }, o.prototype.refreshHover = function () { this._needsRefreshHover = !0 }, o.prototype.refreshHoverImmediately = function () { this._needsRefreshHover = !1, this.painter.refreshHover && "canvas" === this.painter.getType() && this.painter.refreshHover() }, o.prototype.resize = function (t) { this.painter.resize((t = t || {}).width, t.height), this.handler.resize() }, o.prototype.clearAnimation = function () { this.animation.clear() }, o.prototype.getWidth = function () { return this.painter.getWidth() }, o.prototype.getHeight = function () { return this.painter.getHeight() }, o.prototype.setCursorStyle = function (t) { this.handler.setCursorStyle(t) }, o.prototype.findHover = function (t, e) { return this.handler.findHover(t, e) }, o.prototype.on = function (t, e, n) { return this.handler.on(t, e, n), this }, o.prototype.off = function (t, e) { this.handler.off(t, e) }, o.prototype.trigger = function (t, e) { this.handler.trigger(t, e) }, o.prototype.clear = function () { for (var t = this.storage.getRoots(), e = 0; e < t.length; e++)t[e] instanceof zr && t[e].removeSelfFromZr(this); this.storage.delAllRoots(), this.painter.clear() }, o.prototype.dispose = function () { var t; this.animation.stop(), this.clear(), this.storage.dispose(), this.painter.dispose(), this.handler.dispose(), this.animation = this.storage = this.painter = this.handler = null, t = this.id, delete Vr[t] }; var Hr = o; function o(t, e, n) { var i = this, r = (this._sleepAfterStill = 10, this._stillFrameAccum = 0, this._needsRefresh = !0, this._needsRefreshHover = !0, this._darkMode = !1, n = n || {}, this.dom = e, this.id = t, new wn), o = n.renderer || "canvas", o = (Fr[o] || (o = D(Fr)[0]), n.useDirtyRect = null != n.useDirtyRect && n.useDirtyRect, new Fr[o](e, r, n, t)), e = n.ssr || o.ssrOnly; this.storage = r, this.painter = o; var a, t = p.node || p.worker || e ? null : new nr(o.getViewportRoot(), o.root), s = n.useCoarsePointer; (null == s || "auto" === s ? p.touchEventsSupported : s) && (a = N(n.pointerSize, 44)), this.handler = new rn(r, o, t, o.root, a), this.animation = new Ei({ stage: { update: e ? null : function () { return i._flush(!0) } } }), e || this.animation.start() } function Wr(t, e) { t = new Hr(et++, t, e); return Vr[t.id] = t } function Gr(t, e) { Fr[t] = e } var Ur = Object.freeze({ __proto__: null, dispose: function (t) { t.dispose() }, disposeAll: function () { for (var t in Vr) Vr.hasOwnProperty(t) && Vr[t].dispose(); Vr = {} }, getInstance: function (t) { return Vr[t] }, init: Wr, registerPainter: Gr, version: "5.4.4" }), Xr = 20; function Yr(t, e, n, i) { var r = e[0], e = e[1], o = n[0], n = n[1], a = e - r, s = n - o; if (0 == a) return 0 == s ? o : (o + n) / 2; if (i) if (0 < a) { if (t <= r) return o; if (e <= t) return n } else { if (r <= t) return o; if (t <= e) return n } else { if (t === r) return o; if (t === e) return n } return (t - r) / a * s + o } function qr(t, e) { switch (t) { case "center": case "middle": t = "50%"; break; case "left": case "top": t = "0%"; break; case "right": case "bottom": t = "100%" }return H(t) ? t.replace(/^\s+|\s+$/g, "").match(/%$/) ? parseFloat(t) / 100 * e : parseFloat(t) : null == t ? NaN : +t } function Zr(t, e, n) { return null == e && (e = 10), e = Math.min(Math.max(0, e), Xr), t = (+t).toFixed(e), n ? t : +t } function jr(t) { if (t = +t, isNaN(t)) return 0; if (1e-14 < t) for (var e = 1, n = 0; n < 15; n++, e *= 10)if (Math.round(t * e) / e === t) return n; return Kr(t) } function Kr(t) { var t = t.toString().toLowerCase(), e = t.indexOf("e"), n = 0 < e ? +t.slice(e + 1) : 0, e = 0 < e ? e : t.length, t = t.indexOf("."); return Math.max(0, (t < 0 ? 0 : e - 1 - t) - n) } function $r(t, e) { var n = Math.log, i = Math.LN10, t = Math.floor(n(t[1] - t[0]) / i), n = Math.round(n(Math.abs(e[1] - e[0])) / i), e = Math.min(Math.max(-t + n, 0), 20); return isFinite(e) ? e : 20 } function Qr(t) { var e = 2 * Math.PI; return (t % e + e) % e } function Jr(t) { return -1e-4 < t && t < 1e-4 } var to = /^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d{1,2})(?::(\d{1,2})(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/; function eo(t) { var e, n; return t instanceof Date ? t : H(t) ? (e = to.exec(t)) ? e[8] ? (n = +e[4] || 0, "Z" !== e[8].toUpperCase() && (n -= +e[8].slice(0, 3)), new Date(Date.UTC(+e[1], +(e[2] || 1) - 1, +e[3] || 1, n, +(e[5] || 0), +e[6] || 0, e[7] ? +e[7].substring(0, 3) : 0))) : new Date(+e[1], +(e[2] || 1) - 1, +e[3] || 1, +e[4] || 0, +(e[5] || 0), +e[6] || 0, e[7] ? +e[7].substring(0, 3) : 0) : new Date(NaN) : null == t ? new Date(NaN) : new Date(Math.round(t)) } function no(t) { return Math.pow(10, io(t)) } function io(t) { var e; return 0 === t ? 0 : (e = Math.floor(Math.log(t) / Math.LN10), 10 <= t / Math.pow(10, e) && e++, e) } function ro(t, e) { var n = io(t), i = Math.pow(10, n), r = t / i; return t = (e ? r < 1.5 ? 1 : r < 2.5 ? 2 : r < 4 ? 3 : r < 7 ? 5 : 10 : r < 1 ? 1 : r < 2 ? 2 : r < 3 ? 3 : r < 5 ? 5 : 10) * i, -20 <= n ? +t.toFixed(n < 0 ? -n : 0) : t } function oo(t) { var e = parseFloat(t); return e == t && (0 !== e || !H(t) || t.indexOf("x") <= 0) ? e : NaN } function ao(t) { return !isNaN(oo(t)) } function so(t, e) { return null == t ? e : null == e ? t : t * e / function t(e, n) { return 0 === n ? e : t(n, e % n) }(t, e) } function f(t) { throw new Error(t) } function lo(t, e, n) { return (e - t) * n + t } var uo = "series\0", ho = "\0_ec_\0"; function co(t) { return t instanceof Array ? t : null == t ? [] : [t] } function po(t, e, n) { if (t) { t[e] = t[e] || {}, t.emphasis = t.emphasis || {}, t.emphasis[e] = t.emphasis[e] || {}; for (var i = 0, r = n.length; i < r; i++) { var o = n[i]; !t.emphasis[e].hasOwnProperty(o) && t[e].hasOwnProperty(o) && (t.emphasis[e][o] = t[e][o]) } } } var fo = ["fontStyle", "fontWeight", "fontSize", "fontFamily", "rich", "tag", "color", "textBorderColor", "textBorderWidth", "width", "height", "lineHeight", "align", "verticalAlign", "baseline", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY", "textShadowColor", "textShadowBlur", "textShadowOffsetX", "textShadowOffsetY", "backgroundColor", "borderColor", "borderWidth", "borderRadius", "padding"]; function go(t) { return !R(t) || V(t) || t instanceof Date ? t : t.value } function yo(t, n, e) { var a, i, r, o, s, l, u, h, c, p, d = "normalMerge" === e, f = "replaceMerge" === e, g = "replaceAll" === e, y = (t = t || [], n = (n || []).slice(), E()), e = (O(n, function (t, e) { R(t) || (n[e] = null) }), function (t, e, n) { var i = []; if ("replaceAll" !== n) for (var r = 0; r < t.length; r++) { var o = t[r]; o && null != o.id && e.set(o.id, r), i.push({ existing: "replaceMerge" === n || wo(o) ? null : o, newOption: null, keyInfo: null, brandNew: null }) } return i }(t, y, e)); return (d || f) && (u = e, h = t, c = y, O(p = n, function (t, e) { var n, i, r; t && null != t.id && (n = vo(t.id), null != (i = c.get(n))) && (Tt(!(r = u[i]).newOption, 'Duplicated option on id "' + n + '".'), r.newOption = t, r.existing = h[i], p[e] = null) })), d && (s = e, O(l = n, function (t, e) { if (t && null != t.name) for (var n = 0; n < s.length; n++) { var i = s[n].existing; if (!s[n].newOption && i && (null == i.id || null == t.id) && !wo(t) && !wo(i) && mo("name", i, t)) return s[n].newOption = t, void (l[e] = null) } })), d || f ? (r = e, o = f, O(n, function (t) { if (t) { for (var e, n = 0; (e = r[n]) && (e.newOption || wo(e.existing) || e.existing && null != t.id && !mo("id", t, e.existing));)n++; e ? (e.newOption = t, e.brandNew = o) : r.push({ newOption: t, brandNew: o, existing: null, keyInfo: null }), n++ } })) : g && (i = e, O(n, function (t) { i.push({ newOption: t, brandNew: !0, existing: null, keyInfo: null }) })), t = e, a = E(), O(t, function (t) { var e = t.existing; e && a.set(e.id, t) }), O(t, function (t) { var e = t.newOption; Tt(!e || null == e.id || !a.get(e.id) || a.get(e.id) === t, "id duplicates: " + (e && e.id)), e && null != e.id && a.set(e.id, t), t.keyInfo || (t.keyInfo = {}) }), O(t, function (t, e) { var n = t.existing, i = t.newOption, r = t.keyInfo; if (R(i)) { if (r.name = null != i.name ? vo(i.name) : n ? n.name : uo + e, n) r.id = vo(n.id); else if (null != i.id) r.id = vo(i.id); else for (var o = 0; r.id = "\0" + r.name + "\0" + o++, a.get(r.id);); a.set(r.id, t) } }), e } function mo(t, e, n) { e = _o(e[t], null), n = _o(n[t], null); return null != e && null != n && e === n } function vo(t) { return _o(t, "") } function _o(t, e) { return null == t ? e : H(t) ? t : dt(t) || pt(t) ? t + "" : e } function xo(t) { t = t.name; return !(!t || !t.indexOf(uo)) } function wo(t) { return t && null != t.id && 0 === vo(t.id).indexOf(ho) } function bo(t, r, o) { O(t, function (t) { var e, n, i = t.newOption; R(i) && (t.keyInfo.mainType = r, t.keyInfo.subType = (e = r, i = i, t = t.existing, n = o, i.type || (t ? t.subType : n.determineSubType(e, i)))) }) } function So(e, t) { return null != t.dataIndexInside ? t.dataIndexInside : null != t.dataIndex ? V(t.dataIndex) ? F(t.dataIndex, function (t) { return e.indexOfRawIndex(t) }) : e.indexOfRawIndex(t.dataIndex) : null != t.name ? V(t.name) ? F(t.name, function (t) { return e.indexOfName(t) }) : e.indexOfName(t.name) : void 0 } function Mo() { var e = "__ec_inner_" + To++; return function (t) { return t[e] || (t[e] = {}) } } var To = Math.round(9 * Math.random()); function Co(n, t, i) { var t = ko(t, i), e = t.mainTypeSpecified, r = t.queryOptionMap, o = t.others, a = i ? i.defaultMainType : null; return !e && a && r.set(a, {}), r.each(function (t, e) { t = Io(n, e, t, { useDefault: a === e, enableAll: !i || null == i.enableAll || i.enableAll, enableNone: !i || null == i.enableNone || i.enableNone }); o[e + "Models"] = t.models, o[e + "Model"] = t.models[0] }), o } function ko(t, r) { var e = H(t) ? ((e = {})[t + "Index"] = 0, e) : t, o = E(), a = {}, s = !1; return O(e, function (t, e) { var n, i; "dataIndex" !== e && "dataIndexInside" !== e ? (n = (i = e.match(/^(\w+)(Index|Id|Name)$/) || [])[1], i = (i[2] || "").toLowerCase(), !n || !i || r && r.includeMainTypes && k(r.includeMainTypes, n) < 0 || (s = s || !!n, (o.get(n) || o.set(n, {}))[i] = t)) : a[e] = t }), { mainTypeSpecified: s, queryOptionMap: o, others: a } } var Do = { useDefault: !0, enableAll: !1, enableNone: !1 }; function Io(t, e, n, i) { i = i || Do; var r = n.index, o = n.id, n = n.name, a = { models: null, specified: null != r || null != o || null != n }; return a.specified ? "none" === r || !1 === r ? (Tt(i.enableNone, '`"none"` or `false` is not a valid value on index option.'), a.models = []) : ("all" === r && (Tt(i.enableAll, '`"all"` is not a valid value on index option.'), r = o = n = null), a.models = t.queryComponents({ mainType: e, index: r, id: o, name: n })) : (r = void 0, a.models = i.useDefault && (r = t.getComponent(e)) ? [r] : []), a } function Ao(t, e, n) { t.setAttribute ? t.setAttribute(e, n) : t[e] = n } function Lo(t, e, n, i, r) { var o = null == e || "auto" === e; if (null == i) return i; if (dt(i)) return Zr(p = lo(n || 0, i, r), o ? Math.max(jr(n || 0), jr(i)) : e); if (H(i)) return r < 1 ? n : i; for (var a = [], s = n, l = i, u = Math.max(s ? s.length : 0, l.length), h = 0; h < u; ++h) { var c, p, d = t.getDimensionInfo(h); d && "ordinal" === d.type ? a[h] = (r < 1 && s ? s : l)[h] : (p = lo(d = s && s[h] ? s[h] : 0, c = l[h], r), a[h] = Zr(p, o ? Math.max(jr(d), jr(c)) : e)) } return a } var Po = ".", Oo = "___EC__COMPONENT__CONTAINER___", Ro = "___EC__EXTENDED_CLASS___"; function No(t) { var e = { main: "", sub: "" }; return t && (t = t.split(Po), e.main = t[0] || "", e.sub = t[1] || ""), e } function Eo(t) { (t.$constructor = t).extend = function (t) { var e, n, i, r = this; return S(i = r) && /^class\s/.test(Function.prototype.toString.call(i)) ? (u(o, n = r), e = o) : ot(e = function () { (t.$constructor || r).apply(this, arguments) }, this), P(e.prototype, t), e[Ro] = !0, e.extend = this.extend, e.superCall = Fo, e.superApply = Vo, e.superClass = r, e; function o() { return n.apply(this, arguments) || this } } } function zo(t, e) { t.extend = e.extend } var Bo = Math.round(10 * Math.random()); function Fo(t, e) { for (var n = [], i = 2; i < arguments.length; i++)n[i - 2] = arguments[i]; return this.superClass.prototype[e].apply(t, n) } function Vo(t, e, n) { return this.superClass.prototype[e].apply(t, n) } function Ho(t) { var r = {}; t.registerClass = function (t) { var e, n = t.type || t.prototype.type; return n && (Tt(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(e = n), 'componentType "' + e + '" illegal'), (e = No(t.prototype.type = n)).sub ? e.sub !== Oo && ((n = r[e.main]) && n[Oo] || ((n = r[e.main] = {})[Oo] = !0), n[e.sub] = t) : r[e.main] = t), t }, t.getClass = function (t, e, n) { var i = r[t]; if (i && i[Oo] && (i = e ? i[e] : null), n && !i) throw new Error(e ? "Component " + t + "." + (e || "") + " is used but not imported." : t + ".type should be specified."); return i }, t.getClassesByMainType = function (t) { var t = No(t), n = [], t = r[t.main]; return t && t[Oo] ? O(t, function (t, e) { e !== Oo && n.push(t) }) : n.push(t), n }, t.hasClass = function (t) { t = No(t); return !!r[t.main] }, t.getAllClassMainTypes = function () { var n = []; return O(r, function (t, e) { n.push(e) }), n }, t.hasSubTypes = function (t) { t = No(t), t = r[t.main]; return t && t[Oo] } } function Wo(a, s) { for (var t = 0; t < a.length; t++)a[t][1] || (a[t][1] = a[t][0]); return s = s || !1, function (t, e, n) { for (var i = {}, r = 0; r < a.length; r++) { var o = a[r][1]; e && 0 <= k(e, o) || n && k(n, o) < 0 || null != (o = t.getShallow(o, s)) && (i[a[r][0]] = o) } return i } } var Go = Wo([["fill", "color"], ["shadowBlur"], ["shadowOffsetX"], ["shadowOffsetY"], ["opacity"], ["shadowColor"]]), Uo = (Xo.prototype.getAreaStyle = function (t, e) { return Go(this, t, e) }, Xo); function Xo() { } var Yo = new Jn(50); function qo(t, e, n, i, r) { return t ? "string" == typeof t ? (e && e.__zrImageSrc === t || !n || (n = { hostEl: n, cb: i, cbPayload: r }, (i = Yo.get(t)) ? jo(e = i.image) || i.pending.push(n) : ((e = W.loadImage(t, Zo, Zo)).__zrImageSrc = t, Yo.put(t, e.__cachedImgObj = { image: e, pending: [n] }))), e) : t : e } function Zo() { var t = this.__cachedImgObj; this.onload = this.onerror = this.__cachedImgObj = null; for (var e = 0; e < t.pending.length; e++) { var n = t.pending[e], i = n.cb; i && i(this, n.cbPayload), n.hostEl.dirty() } t.pending.length = 0 } function jo(t) { return t && t.width && t.height } var Ko = /\{([a-zA-Z0-9_]+)\|([^}]*)\}/g; function $o(t, e, n, i, r) { if (!e) return ""; var o = (t + "").split("\n"); r = Qo(e, n, i, r); for (var a = 0, s = o.length; a < s; a++)o[a] = Jo(o[a], r); return o.join("\n") } function Qo(t, e, n, i) { var r = P({}, i = i || {}), o = (r.font = e, n = N(n, "..."), r.maxIterations = N(i.maxIterations, 2), r.minChar = N(i.minChar, 0)), a = (r.cnCharWidth = mr("国", e), r.ascCharWidth = mr("a", e)); r.placeholder = N(i.placeholder, ""); for (var s = t = Math.max(0, t - 1), l = 0; l < o && a <= s; l++)s -= a; i = mr(n, e); return s < i && (n = "", i = 0), s = t - i, r.ellipsis = n, r.ellipsisWidth = i, r.contentWidth = s, r.containerWidth = t, r } function Jo(t, e) { var n = e.containerWidth, i = e.font, r = e.contentWidth; if (!n) return ""; var o = mr(t, i); if (!(o <= n)) { for (var a = 0; ; a++) { if (o <= r || a >= e.maxIterations) { t += e.ellipsis; break } var s = 0 === a ? function (t, e, n, i) { for (var r = 0, o = 0, a = t.length; o < a && r < e; o++) { var s = t.charCodeAt(o); r += 0 <= s && s <= 127 ? n : i } return o }(t, r, e.ascCharWidth, e.cnCharWidth) : 0 < o ? Math.floor(t.length * r / o) : 0, o = mr(t = t.substr(0, s), i) } "" === t && (t = e.placeholder) } return t } function ta() { this.width = 0, this.height = 0, this.contentWidth = 0, this.contentHeight = 0, this.outerWidth = 0, this.outerHeight = 0, this.lines = [] } var ea = function () { }, na = function (t) { this.tokens = [], t && (this.tokens = t) }; function ia(t, e) { var n = new ta; if (null != t && (t += ""), t) { for (var i, r = e.width, o = e.height, a = e.overflow, s = "break" !== a && "breakAll" !== a || null == r ? null : { width: r, accumWidth: 0, breakAll: "breakAll" === a }, l = Ko.lastIndex = 0; null != (i = Ko.exec(t));) { var u = i.index; l < u && ra(n, t.substring(l, u), e, s), ra(n, i[2], e, s, i[1]), l = Ko.lastIndex } l < t.length && ra(n, t.substring(l, t.length), e, s); var h, c = [], p = 0, d = 0, f = e.padding, g = "truncate" === a, y = "truncate" === e.lineOverflow; t: for (var m = 0; m < n.lines.length; m++) { for (var v = n.lines[m], _ = 0, x = 0, w = 0; w < v.tokens.length; w++) { var b = (I = v.tokens[w]).styleName && e.rich[I.styleName] || {}, S = I.textPadding = b.padding, M = S ? S[1] + S[3] : 0, T = I.font = b.font || e.font, C = (I.contentHeight = br(T), N(b.height, I.contentHeight)); if (I.innerHeight = C, S && (C += S[0] + S[2]), I.height = C, I.lineHeight = bt(b.lineHeight, e.lineHeight, C), I.align = b && b.align || e.align, I.verticalAlign = b && b.verticalAlign || "middle", y && null != o && p + I.lineHeight > o) { 0 < w ? (v.tokens = v.tokens.slice(0, w), L(v, x, _), n.lines = n.lines.slice(0, m + 1)) : n.lines = n.lines.slice(0, m); break t } var k, S = b.width, D = null == S || "auto" === S; "string" == typeof S && "%" === S.charAt(S.length - 1) ? (I.percentWidth = S, c.push(I), I.contentWidth = mr(I.text, T)) : (D && (S = (S = b.backgroundColor) && S.image) && (k = void 0, jo(S = "string" == typeof (h = S) ? (k = Yo.get(h)) && k.image : h)) && (I.width = Math.max(I.width, S.width * C / S.height)), null != (k = g && null != r ? r - x : null) && k < I.width ? !D || k < M ? (I.text = "", I.width = I.contentWidth = 0) : (I.text = $o(I.text, k - M, T, e.ellipsis, { minChar: e.truncateMinChar }), I.width = I.contentWidth = mr(I.text, T)) : I.contentWidth = mr(I.text, T)), I.width += M, x += I.width, b && (_ = Math.max(_, I.lineHeight)) } L(v, x, _) } for (n.outerWidth = n.width = N(r, d), n.outerHeight = n.height = N(o, p), n.contentHeight = p, n.contentWidth = d, f && (n.outerWidth += f[1] + f[3], n.outerHeight += f[0] + f[2]), m = 0; m < c.length; m++) { var I, A = (I = c[m]).percentWidth; I.width = parseInt(A, 10) / 100 * n.width } } return n; function L(t, e, n) { t.width = e, t.lineHeight = n, p += n, d = Math.max(d, e) } } function ra(t, e, n, i, r) { var o, a, s = "" === e, l = r && n.rich[r] || {}, u = t.lines, h = l.font || n.font, c = !1; i ? (n = (t = l.padding) ? t[1] + t[3] : 0, null != l.width && "auto" !== l.width ? (t = Sr(l.width, i.width) + n, 0 < u.length && t + i.accumWidth > i.width && (o = e.split("\n"), c = !0), i.accumWidth = t) : (t = aa(e, h, i.width, i.breakAll, i.accumWidth), i.accumWidth = t.accumWidth + n, a = t.linesWidths, o = t.lines)) : o = e.split("\n"); for (var p = 0; p < o.length; p++) { var d, f, g = o[p], y = new ea; y.styleName = r, y.text = g, y.isLineHolder = !g && !s, "number" == typeof l.width ? y.width = l.width : y.width = a ? a[p] : mr(g, h), p || c ? u.push(new na([y])) : 1 === (f = (d = (u[u.length - 1] || (u[0] = new na)).tokens).length) && d[0].isLineHolder ? d[0] = y : !g && f && !s || d.push(y) } } var oa = lt(",&?/;] ".split(""), function (t, e) { return t[e] = !0, t }, {}); function aa(t, e, n, i, r) { for (var o, a = [], s = [], l = "", u = "", h = 0, c = 0, p = 0; p < t.length; p++) { var d, f, g = t.charAt(p); "\n" !== g ? (d = mr(g, e), f = !(i || (f = void 0, !(32 <= (f = (f = o = g).charCodeAt(0)) && f <= 591 || 880 <= f && f <= 4351 || 4608 <= f && f <= 5119 || 7680 <= f && f <= 8303)) || oa[o]), (a.length ? n < c + d : n < r + c + d) ? c ? (l || u) && (c = f ? (l || (l = u, u = "", c = h = 0), a.push(l), s.push(c - h), u += g, l = "", h += d) : (u && (l += u, u = "", h = 0), a.push(l), s.push(c), l = g, d)) : f ? (a.push(u), s.push(h), u = g, h = d) : (a.push(g), s.push(d)) : (c += d, f ? (u += g, h += d) : (u && (l += u, u = "", h = 0), l += g))) : (u && (l += u, c += h), a.push(l), s.push(c), u = l = "", c = h = 0) } return a.length || l || (l = t, u = "", h = 0), u && (l += u), l && (a.push(l), s.push(c)), 1 === a.length && (c += r), { accumWidth: c, lines: a, linesWidths: s } } var sa, la = "__zr_style_" + Math.round(10 * Math.random()), ua = { shadowBlur: 0, shadowOffsetX: 0, shadowOffsetY: 0, shadowColor: "#000", opacity: 1, blend: "source-over" }, ha = { style: { shadowBlur: !0, shadowOffsetX: !0, shadowOffsetY: !0, shadowColor: !0, opacity: !0 } }, ca = (ua[la] = !0, ["z", "z2", "invisible"]), pa = ["invisible"], i = (u(a, sa = i), a.prototype._init = function (t) { for (var e = D(t), n = 0; n < e.length; n++) { var i = e[n]; "style" === i ? this.useStyle(t[i]) : sa.prototype.attrKV.call(this, i, t[i]) } this.style || this.useStyle({}) }, a.prototype.beforeBrush = function () { }, a.prototype.afterBrush = function () { }, a.prototype.innerBeforeBrush = function () { }, a.prototype.innerAfterBrush = function () { }, a.prototype.shouldBePainted = function (t, e, n, i) { var r, o = this.transform; if (this.ignore || this.invisible || 0 === this.style.opacity || this.culling && (r = this, t = t, e = e, da.copy(r.getBoundingRect()), r.transform && da.applyTransform(r.transform), fa.width = t, fa.height = e, !da.intersect(fa)) || o && !o[0] && !o[3]) return !1; if (n && this.__clipPaths) for (var a = 0; a < this.__clipPaths.length; ++a)if (this.__clipPaths[a].isZeroArea()) return !1; if (i && this.parent) for (var s = this.parent; s;) { if (s.ignore) return !1; s = s.parent } return !0 }, a.prototype.contain = function (t, e) { return this.rectContain(t, e) }, a.prototype.traverse = function (t, e) { t.call(e, this) }, a.prototype.rectContain = function (t, e) { t = this.transformCoordToLocal(t, e); return this.getBoundingRect().contain(t[0], t[1]) }, a.prototype.getPaintRect = function () { var t, e, n, i, r, o = this._paintRect; return this._paintRect && !this.__dirty || (r = this.transform, t = this.getBoundingRect(), e = (i = this.style).shadowBlur || 0, n = i.shadowOffsetX || 0, i = i.shadowOffsetY || 0, o = this._paintRect || (this._paintRect = new z(0, 0, 0, 0)), r ? z.applyTransform(o, t, r) : o.copy(t), (e || n || i) && (o.width += 2 * e + Math.abs(n), o.height += 2 * e + Math.abs(i), o.x = Math.min(o.x, o.x + n - e), o.y = Math.min(o.y, o.y + i - e)), r = this.dirtyRectTolerance, o.isZero()) || (o.x = Math.floor(o.x - r), o.y = Math.floor(o.y - r), o.width = Math.ceil(o.width + 1 + 2 * r), o.height = Math.ceil(o.height + 1 + 2 * r)), o }, a.prototype.setPrevPaintRect = function (t) { t ? (this._prevPaintRect = this._prevPaintRect || new z(0, 0, 0, 0), this._prevPaintRect.copy(t)) : this._prevPaintRect = null }, a.prototype.getPrevPaintRect = function () { return this._prevPaintRect }, a.prototype.animateStyle = function (t) { return this.animate("style", t) }, a.prototype.updateDuringAnimation = function (t) { "style" === t ? this.dirtyStyle() : this.markRedraw() }, a.prototype.attrKV = function (t, e) { "style" !== t ? sa.prototype.attrKV.call(this, t, e) : this.style ? this.setStyle(e) : this.useStyle(e) }, a.prototype.setStyle = function (t, e) { return "string" == typeof t ? this.style[t] = e : P(this.style, t), this.dirtyStyle(), this }, a.prototype.dirtyStyle = function (t) { t || this.markRedraw(), this.__dirty |= 2, this._rect && (this._rect = null) }, a.prototype.dirty = function () { this.dirtyStyle() }, a.prototype.styleChanged = function () { return !!(2 & this.__dirty) }, a.prototype.styleUpdated = function () { this.__dirty &= -3 }, a.prototype.createStyle = function (t) { return Et(ua, t) }, a.prototype.useStyle = function (t) { t[la] || (t = this.createStyle(t)), this.__inHover ? this.__hoverStyle = t : this.style = t, this.dirtyStyle() }, a.prototype.isStyleObject = function (t) { return t[la] }, a.prototype._innerSaveToNormal = function (t) { sa.prototype._innerSaveToNormal.call(this, t); var e = this._normalState; t.style && !e.style && (e.style = this._mergeStyle(this.createStyle(), this.style)), this._savePrimaryToNormal(t, e, ca) }, a.prototype._applyStateObj = function (t, e, n, i, r, o) { sa.prototype._applyStateObj.call(this, t, e, n, i, r, o); var a, s = !(e && i); if (e && e.style ? r ? i ? a = e.style : (a = this._mergeStyle(this.createStyle(), n.style), this._mergeStyle(a, e.style)) : (a = this._mergeStyle(this.createStyle(), (i ? this : n).style), this._mergeStyle(a, e.style)) : s && (a = n.style), a) if (r) { var l = this.style; if (this.style = this.createStyle(s ? {} : l), s) for (var u = D(l), h = 0; h < u.length; h++)(p = u[h]) in a && (a[p] = a[p], this.style[p] = l[p]); for (var c = D(a), h = 0; h < c.length; h++) { var p = c[h]; this.style[p] = this.style[p] } this._transitionState(t, { style: a }, o, this.getAnimationStyleProps()) } else this.useStyle(a); var d = this.__inHover ? pa : ca; for (h = 0; h < d.length; h++)p = d[h], e && null != e[p] ? this[p] = e[p] : s && null != n[p] && (this[p] = n[p]) }, a.prototype._mergeStates = function (t) { for (var e, n = sa.prototype._mergeStates.call(this, t), i = 0; i < t.length; i++) { var r = t[i]; r.style && this._mergeStyle(e = e || {}, r.style) } return e && (n.style = e), n }, a.prototype._mergeStyle = function (t, e) { return P(t, e), t }, a.prototype.getAnimationStyleProps = function () { return ha }, a.initDefaultProps = ((i = a.prototype).type = "displayable", i.invisible = !1, i.z = 0, i.z2 = 0, i.zlevel = 0, i.culling = !1, i.cursor = "pointer", i.rectHover = !1, i.incremental = !1, i._rect = null, i.dirtyRectTolerance = 0, void (i.__dirty = 2 | yn)), a), da = new z(0, 0, 0, 0), fa = new z(0, 0, 0, 0); function a(t) { return sa.call(this, t) || this } var ga = Math.min, ya = Math.max, ma = Math.sin, va = Math.cos, _a = 2 * Math.PI, xa = Wt(), wa = Wt(), ba = Wt(); function Sa(t, e, n, i, r, o) { r[0] = ga(t, n), r[1] = ga(e, i), o[0] = ya(t, n), o[1] = ya(e, i) } var Ma = [], Ta = []; var G = { M: 1, L: 2, C: 3, Q: 4, A: 5, Z: 6, R: 7 }, Ca = [], ka = [], Da = [], Ia = [], Aa = [], La = [], Pa = Math.min, Oa = Math.max, Ra = Math.cos, Na = Math.sin, Ea = Math.abs, za = Math.PI, Ba = 2 * za, Fa = "undefined" != typeof Float32Array, Va = []; function Ha(t) { return Math.round(t / za * 1e8) / 1e8 % 2 * za } s.prototype.increaseVersion = function () { this._version++ }, s.prototype.getVersion = function () { return this._version }, s.prototype.setScale = function (t, e, n) { 0 < (n = n || 0) && (this._ux = Ea(n / rr / t) || 0, this._uy = Ea(n / rr / e) || 0) }, s.prototype.setDPR = function (t) { this.dpr = t }, s.prototype.setContext = function (t) { this._ctx = t }, s.prototype.getContext = function () { return this._ctx }, s.prototype.beginPath = function () { return this._ctx && this._ctx.beginPath(), this.reset(), this }, s.prototype.reset = function () { this._saveData && (this._len = 0), this._pathSegLen && (this._pathSegLen = null, this._pathLen = 0), this._version++ }, s.prototype.moveTo = function (t, e) { return this._drawPendingPt(), this.addData(G.M, t, e), this._ctx && this._ctx.moveTo(t, e), this._x0 = t, this._y0 = e, this._xi = t, this._yi = e, this }, s.prototype.lineTo = function (t, e) { var n = Ea(t - this._xi), i = Ea(e - this._yi), r = n > this._ux || i > this._uy; return this.addData(G.L, t, e), this._ctx && r && this._ctx.lineTo(t, e), r ? (this._xi = t, this._yi = e, this._pendingPtDist = 0) : (r = n * n + i * i) > this._pendingPtDist && (this._pendingPtX = t, this._pendingPtY = e, this._pendingPtDist = r), this }, s.prototype.bezierCurveTo = function (t, e, n, i, r, o) { return this._drawPendingPt(), this.addData(G.C, t, e, n, i, r, o), this._ctx && this._ctx.bezierCurveTo(t, e, n, i, r, o), this._xi = r, this._yi = o, this }, s.prototype.quadraticCurveTo = function (t, e, n, i) { return this._drawPendingPt(), this.addData(G.Q, t, e, n, i), this._ctx && this._ctx.quadraticCurveTo(t, e, n, i), this._xi = n, this._yi = i, this }, s.prototype.arc = function (t, e, n, i, r, o) { this._drawPendingPt(), Va[0] = i, Va[1] = r, s = o, (l = Ha((a = Va)[0])) < 0 && (l += Ba), h = l - a[0], u = a[1], u += h, !s && Ba <= u - l ? u = l + Ba : s && Ba <= l - u ? u = l - Ba : !s && u < l ? u = l + (Ba - Ha(l - u)) : s && l < u && (u = l - (Ba - Ha(u - l))), a[0] = l, a[1] = u; var a, s, l, u, h = (r = Va[1]) - (i = Va[0]); return this.addData(G.A, t, e, n, n, i, h, 0, o ? 0 : 1), this._ctx && this._ctx.arc(t, e, n, i, r, o), this._xi = Ra(r) * n + t, this._yi = Na(r) * n + e, this }, s.prototype.arcTo = function (t, e, n, i, r) { return this._drawPendingPt(), this._ctx && this._ctx.arcTo(t, e, n, i, r), this }, s.prototype.rect = function (t, e, n, i) { return this._drawPendingPt(), this._ctx && this._ctx.rect(t, e, n, i), this.addData(G.R, t, e, n, i), this }, s.prototype.closePath = function () { this._drawPendingPt(), this.addData(G.Z); var t = this._ctx, e = this._x0, n = this._y0; return t && t.closePath(), this._xi = e, this._yi = n, this }, s.prototype.fill = function (t) { t && t.fill(), this.toStatic() }, s.prototype.stroke = function (t) { t && t.stroke(), this.toStatic() }, s.prototype.len = function () { return this._len }, s.prototype.setData = function (t) { var e = t.length; this.data && this.data.length === e || !Fa || (this.data = new Float32Array(e)); for (var n = 0; n < e; n++)this.data[n] = t[n]; this._len = e }, s.prototype.appendPath = function (t) { for (var e = (t = t instanceof Array ? t : [t]).length, n = 0, i = this._len, r = 0; r < e; r++)n += t[r].len(); for (Fa && this.data instanceof Float32Array && (this.data = new Float32Array(i + n)), r = 0; r < e; r++)for (var o = t[r].data, a = 0; a < o.length; a++)this.data[i++] = o[a]; this._len = i }, s.prototype.addData = function (t, e, n, i, r, o, a, s, l) { if (this._saveData) { var u = this.data; this._len + arguments.length > u.length && (this._expandData(), u = this.data); for (var h = 0; h < arguments.length; h++)u[this._len++] = arguments[h] } }, s.prototype._drawPendingPt = function () { 0 < this._pendingPtDist && (this._ctx && this._ctx.lineTo(this._pendingPtX, this._pendingPtY), this._pendingPtDist = 0) }, s.prototype._expandData = function () { if (!(this.data instanceof Array)) { for (var t = [], e = 0; e < this._len; e++)t[e] = this.data[e]; this.data = t } }, s.prototype.toStatic = function () { var t; this._saveData && (this._drawPendingPt(), (t = this.data) instanceof Array) && (t.length = this._len, Fa) && 11 < this._len && (this.data = new Float32Array(t)) }, s.prototype.getBoundingRect = function () { Da[0] = Da[1] = Aa[0] = Aa[1] = Number.MAX_VALUE, Ia[0] = Ia[1] = La[0] = La[1] = -Number.MAX_VALUE; for (var t, e, n, i = this.data, r = 0, o = 0, a = 0, s = 0, l = 0; l < this._len;) { var u = i[l++], h = 1 === l; switch (h && (a = r = i[l], s = o = i[l + 1]), u) { case G.M: r = a = i[l++], o = s = i[l++], Aa[0] = a, Aa[1] = s, La[0] = a, La[1] = s; break; case G.L: Sa(r, o, i[l], i[l + 1], Aa, La), r = i[l++], o = i[l++]; break; case G.C: C = T = M = S = b = w = x = _ = v = m = y = g = f = d = p = c = void 0; var c = r, p = o, d = i[l++], f = i[l++], g = i[l++], y = i[l++], m = i[l], v = i[l + 1], _ = Aa, x = La, w = Bn, b = Nn, S = w(c, d, g, m, Ma); _[0] = 1 / 0, _[1] = 1 / 0, x[0] = -1 / 0, x[1] = -1 / 0; for (var M = 0; M < S; M++) { var T = b(c, d, g, m, Ma[M]); _[0] = ga(T, _[0]), x[0] = ya(T, x[0]) } for (S = w(p, f, y, v, Ta), M = 0; M < S; M++) { var C = b(p, f, y, v, Ta[M]); _[1] = ga(C, _[1]), x[1] = ya(C, x[1]) } _[0] = ga(c, _[0]), x[0] = ya(c, x[0]), _[0] = ga(m, _[0]), x[0] = ya(m, x[0]), _[1] = ga(p, _[1]), x[1] = ya(p, x[1]), _[1] = ga(v, _[1]), x[1] = ya(v, x[1]), r = i[l++], o = i[l++]; break; case G.Q: w = r, t = o, P = i[l++], D = i[l++], L = i[l], e = i[l + 1], A = Aa, O = La, n = I = n = k = void 0, k = Hn, n = ya(ga((I = Gn)(w, P, L), 1), 0), I = ya(ga(I(t, D, e), 1), 0), P = k(w, P, L, n), n = k(t, D, e, I), A[0] = ga(w, L, P), A[1] = ga(t, e, n), O[0] = ya(w, L, P), O[1] = ya(t, e, n), r = i[l++], o = i[l++]; break; case G.A: var k = i[l++], D = i[l++], I = i[l++], A = i[l++], L = i[l++], P = i[l++] + L, O = (l += 1, !i[l++]); h && (a = Ra(L) * I + k, s = Na(L) * A + D), function (t, e, n, i, r, o, a, s, l) { var u = ne, h = ie, c = Math.abs(r - o); if (c % _a < 1e-4 && 1e-4 < c) return s[0] = t - n, s[1] = e - i, l[0] = t + n, l[1] = e + i; xa[0] = va(r) * n + t, xa[1] = ma(r) * i + e, wa[0] = va(o) * n + t, wa[1] = ma(o) * i + e, u(s, xa, wa), h(l, xa, wa), (r %= _a) < 0 && (r += _a), (o %= _a) < 0 && (o += _a), o < r && !a ? o += _a : r < o && a && (r += _a), a && (c = o, o = r, r = c); for (var p = 0; p < o; p += Math.PI / 2)r < p && (ba[0] = va(p) * n + t, ba[1] = ma(p) * i + e, u(s, ba, s), h(l, ba, l)) }(k, D, I, A, L, P, O, Aa, La), r = Ra(P) * I + k, o = Na(P) * A + D; break; case G.R: Sa(a = r = i[l++], s = o = i[l++], a + i[l++], s + i[l++], Aa, La); break; case G.Z: r = a, o = s }ne(Da, Da, Aa), ie(Ia, Ia, La) } return 0 === l && (Da[0] = Da[1] = Ia[0] = Ia[1] = 0), new z(Da[0], Da[1], Ia[0] - Da[0], Ia[1] - Da[1]) }, s.prototype._calculateLength = function () { var t = this.data, e = this._len, n = this._ux, i = this._uy, r = 0, o = 0, a = 0, s = 0; this._pathSegLen || (this._pathSegLen = []); for (var l = this._pathSegLen, u = 0, h = 0, c = 0; c < e;) { var p = t[c++], d = 1 === c, f = (d && (a = r = t[c], s = o = t[c + 1]), -1); switch (p) { case G.M: r = a = t[c++], o = s = t[c++]; break; case G.L: var g = t[c++], y = (_ = t[c++]) - o; (Ea(k = g - r) > n || Ea(y) > i || c === e - 1) && (f = Math.sqrt(k * k + y * y), r = g, o = _); break; case G.C: var m = t[c++], v = t[c++], _ = (g = t[c++], t[c++]), x = t[c++], w = t[c++], f = function (t, e, n, i, r, o, a, s, l) { for (var u = t, h = e, c = 0, p = 1 / l, d = 1; d <= l; d++) { var f = d * p, g = Nn(t, n, r, a, f), f = Nn(e, i, o, s, f), y = g - u, m = f - h; c += Math.sqrt(y * y + m * m), u = g, h = f } return c }(r, o, m, v, g, _, x, w, 10), r = x, o = w; break; case G.Q: f = function (t, e, n, i, r, o, a) { for (var s = t, l = e, u = 0, h = 1 / a, c = 1; c <= a; c++) { var p = c * h, d = Hn(t, n, r, p), p = Hn(e, i, o, p), f = d - s, g = p - l; u += Math.sqrt(f * f + g * g), s = d, l = p } return u }(r, o, m = t[c++], v = t[c++], g = t[c++], _ = t[c++], 10), r = g, o = _; break; case G.A: var x = t[c++], w = t[c++], b = t[c++], S = t[c++], M = t[c++], T = t[c++], C = T + M; c += 1, t[c++], d && (a = Ra(M) * b + x, s = Na(M) * S + w), f = Oa(b, S) * Pa(Ba, Math.abs(T)), r = Ra(C) * b + x, o = Na(C) * S + w; break; case G.R: a = r = t[c++], s = o = t[c++], f = 2 * t[c++] + 2 * t[c++]; break; case G.Z: var k = a - r, y = s - o; f = Math.sqrt(k * k + y * y), r = a, o = s }0 <= f && (u += l[h++] = f) } return this._pathLen = u }, s.prototype.rebuildPath = function (t, e) { var n, i, r, o, a, s, l, u, h = this.data, E = this._ux, z = this._uy, B = this._len, c = e < 1, p = 0, d = 0, f = 0; if (!c || (this._pathSegLen || this._calculateLength(), a = this._pathSegLen, s = e * this._pathLen)) t: for (var g = 0; g < B;) { var y, m = h[g++], F = 1 === g; switch (F && (n = r = h[g], i = o = h[g + 1]), m !== G.L && 0 < f && (t.lineTo(l, u), f = 0), m) { case G.M: n = r = h[g++], i = o = h[g++], t.moveTo(r, o); break; case G.L: var v = h[g++], _ = h[g++], x = Ea(v - r), w = Ea(_ - o); if (E < x || z < w) { if (c) { if (p + (y = a[d++]) > s) { var b = (s - p) / y; t.lineTo(r * (1 - b) + v * b, o * (1 - b) + _ * b); break t } p += y } t.lineTo(v, _), r = v, o = _, f = 0 } else { x = x * x + w * w; f < x && (l = v, u = _, f = x) } break; case G.C: var S = h[g++], M = h[g++], T = h[g++], C = h[g++], w = h[g++], x = h[g++]; if (c) { if (p + (y = a[d++]) > s) { Fn(r, S, T, w, b = (s - p) / y, Ca), Fn(o, M, C, x, b, ka), t.bezierCurveTo(Ca[1], ka[1], Ca[2], ka[2], Ca[3], ka[3]); break t } p += y } t.bezierCurveTo(S, M, T, C, w, x), r = w, o = x; break; case G.Q: if (S = h[g++], M = h[g++], T = h[g++], C = h[g++], c) { if (p + (y = a[d++]) > s) { Un(r, S, T, b = (s - p) / y, Ca), Un(o, M, C, b, ka), t.quadraticCurveTo(Ca[1], ka[1], Ca[2], ka[2]); break t } p += y } t.quadraticCurveTo(S, M, T, C), r = T, o = C; break; case G.A: var k = h[g++], D = h[g++], I = h[g++], A = h[g++], L = h[g++], P = h[g++], O = h[g++], V = !h[g++], H = A < I ? I : A, R = .001 < Ea(I - A), N = L + P, W = !1; if (c && (p + (y = a[d++]) > s && (N = L + P * (s - p) / y, W = !0), p += y), R && t.ellipse ? t.ellipse(k, D, I, A, O, L, N, V) : t.arc(k, D, H, L, N, V), W) break t; F && (n = Ra(L) * I + k, i = Na(L) * A + D), r = Ra(N) * I + k, o = Na(N) * A + D; break; case G.R: n = r = h[g], i = o = h[g + 1], v = h[g++], _ = h[g++]; P = h[g++], R = h[g++]; if (c) { if (p + (y = a[d++]) > s) { O = s - p; t.moveTo(v, _), t.lineTo(v + Pa(O, P), _), 0 < (O -= P) && t.lineTo(v + P, _ + Pa(O, R)), 0 < (O -= R) && t.lineTo(v + Oa(P - O, 0), _ + R), 0 < (O -= P) && t.lineTo(v, _ + Oa(R - O, 0)); break t } p += y } t.rect(v, _, P, R); break; case G.Z: if (c) { if (p + (y = a[d++]) > s) { t.lineTo(r * (1 - (b = (s - p) / y)) + n * b, o * (1 - b) + i * b); break t } p += y } t.closePath(), r = n, o = i } } }, s.prototype.clone = function () { var t = new s, e = this.data; return t.data = e.slice ? e.slice() : Array.prototype.slice.call(e), t._len = this._len, t }, s.CMD = G, s.initDefaultProps = ((ou = s.prototype)._saveData = !0, ou._ux = 0, ou._uy = 0, ou._pendingPtDist = 0, void (ou._version = 0)); var Wa = s; function s(t) { this.dpr = 1, this._xi = 0, this._yi = 0, this._x0 = 0, this._y0 = 0, this._len = 0, t && (this._saveData = !1), this._saveData && (this.data = []) } function Ga(t, e, n, i, r, o, a) { var s; if (0 !== r) return s = 0, !(e + (r = r) < a && i + r < a || a < e - r && a < i - r || t + r < o && n + r < o || o < t - r && o < n - r) && (t === n ? Math.abs(o - t) <= r / 2 : (o = (s = (e - i) / (t - n)) * o - a + (t * i - n * e) / (t - n)) * o / (s * s + 1) <= r / 2 * r / 2) } var Ua = 2 * Math.PI; function Xa(t) { return (t %= Ua) < 0 && (t += Ua), t } var Ya = 2 * Math.PI; function qa(t, e, n, i, r, o) { return e < o && i < o || o < e && o < i || i === e ? 0 : (n = (o = (o - e) / (i - e)) * (n - t) + t) === r ? 1 / 0 : r < n ? 1 != o && 0 != o ? i < e ? 1 : -1 : i < e ? .5 : -.5 : 0 } var Za = Wa.CMD, ja = 2 * Math.PI, Ka = 1e-4; var $a = [-1, -1, -1], Qa = [-1, -1]; function Ja(t, e, n, i, r, o, a, s, l, u) { if (e < u && i < u && o < u && s < u || u < e && u < i && u < o && u < s) return 0; var h = zn(e, i, o, s, u, $a); if (0 === h) return 0; for (var c, p = 0, d = -1, f = void 0, g = void 0, y = 0; y < h; y++) { var m = $a[y], v = 0 === m || 1 === m ? .5 : 1; Nn(t, n, r, a, m) < l || (d < 0 && (d = Bn(e, i, o, s, Qa), Qa[1] < Qa[0] && 1 < d && (c = void 0, c = Qa[0], Qa[0] = Qa[1], Qa[1] = c), f = Nn(e, i, o, s, Qa[0]), 1 < d) && (g = Nn(e, i, o, s, Qa[1])), 2 === d ? m < Qa[0] ? p += f < e ? v : -v : m < Qa[1] ? p += g < f ? v : -v : p += s < g ? v : -v : m < Qa[0] ? p += f < e ? v : -v : p += s < f ? v : -v) } return p } function ts(t, e, n, i, r, o, a, s) { if (e < s && i < s && o < s || s < e && s < i && s < o) return 0; c = $a, h = (l = e) - 2 * (u = i) + (h = o), u = 2 * (u - l), l -= s = s, s = 0, On(h) ? Rn(u) && 0 <= (p = -l / u) && p <= 1 && (c[s++] = p) : On(l = u * u - 4 * h * l) ? 0 <= (p = -u / (2 * h)) && p <= 1 && (c[s++] = p) : 0 < l && (d = (-u - (l = Cn(l))) / (2 * h), 0 <= (p = (-u + l) / (2 * h)) && p <= 1 && (c[s++] = p), 0 <= d) && d <= 1 && (c[s++] = d); var l, u, h, c, p, d, f = s; if (0 === f) return 0; var g = Gn(e, i, o); if (0 <= g && g <= 1) { for (var y = 0, m = Hn(e, i, o, g), v = 0; v < f; v++) { var _ = 0 === $a[v] || 1 === $a[v] ? .5 : 1; Hn(t, n, r, $a[v]) < a || ($a[v] < g ? y += m < e ? _ : -_ : y += o < m ? _ : -_) } return y } return _ = 0 === $a[0] || 1 === $a[0] ? .5 : 1, Hn(t, n, r, $a[0]) < a ? 0 : o < e ? _ : -_ } function es(t, e, n, i, r) { for (var o, a = t.data, s = t.len(), l = 0, u = 0, h = 0, c = 0, p = 0, d = 0; d < s;) { var f = a[d++], g = 1 === d; switch (f === Za.M && 1 < d && (n || (l += qa(u, h, c, p, i, r))), g && (c = u = a[d], p = h = a[d + 1]), f) { case Za.M: u = c = a[d++], h = p = a[d++]; break; case Za.L: if (n) { if (Ga(u, h, a[d], a[d + 1], e, i, r)) return !0 } else l += qa(u, h, a[d], a[d + 1], i, r) || 0; u = a[d++], h = a[d++]; break; case Za.C: if (n) { if (function (t, e, n, i, r, o, a, s, l, u, h) { if (0 !== l) return !(e + (l = l) < h && i + l < h && o + l < h && s + l < h || h < e - l && h < i - l && h < o - l && h < s - l || t + l < u && n + l < u && r + l < u && a + l < u || u < t - l && u < n - l && u < r - l && u < a - l) && Vn(t, e, n, i, r, o, a, s, u, h, null) <= l / 2 }(u, h, a[d++], a[d++], a[d++], a[d++], a[d], a[d + 1], e, i, r)) return !0 } else l += Ja(u, h, a[d++], a[d++], a[d++], a[d++], a[d], a[d + 1], i, r) || 0; u = a[d++], h = a[d++]; break; case Za.Q: if (n) { if (function (t, e, n, i, r, o, a, s, l) { if (0 !== a) return !(e + (a = a) < l && i + a < l && o + a < l || l < e - a && l < i - a && l < o - a || t + a < s && n + a < s && r + a < s || s < t - a && s < n - a && s < r - a) && Xn(t, e, n, i, r, o, s, l, null) <= a / 2 }(u, h, a[d++], a[d++], a[d], a[d + 1], e, i, r)) return !0 } else l += ts(u, h, a[d++], a[d++], a[d], a[d + 1], i, r) || 0; u = a[d++], h = a[d++]; break; case Za.A: var y = a[d++], m = a[d++], v = a[d++], _ = a[d++], x = a[d++], w = a[d++], b = (d += 1, !!(1 - a[d++])), S = Math.cos(x) * v + y, M = Math.sin(x) * _ + m, T = (g ? (c = S, p = M) : l += qa(u, h, S, M, i, r), (i - y) * _ / v + y); if (n) { if (function (t, e, n, i, r, o, a, s, l) { if (0 !== a) return a = a, s -= t, l -= e, !(n < (t = Math.sqrt(s * s + l * l)) - a || t + a < n) && (Math.abs(i - r) % Ya < 1e-4 || ((r = o ? (e = i, i = Xa(r), Xa(e)) : (i = Xa(i), Xa(r))) < i && (r += Ya), (t = Math.atan2(l, s)) < 0 && (t += Ya), i <= t && t <= r) || i <= t + Ya && t + Ya <= r) }(y, m, _, x, x + w, b, e, T, r)) return !0 } else l += function (t, e, n, i, r, o, a, s) { if ((s -= e) > n || s < -n) return 0; var e = Math.sqrt(n * n - s * s); if ($a[0] = -e, $a[1] = e, (n = Math.abs(i - r)) < 1e-4) return 0; if (ja - 1e-4 <= n) return r = ja, h = o ? 1 : -1, a >= $a[i = 0] + t && a <= $a[1] + t ? h : 0; r < i && (e = i, i = r, r = e), i < 0 && (i += ja, r += ja); for (var l = 0, u = 0; u < 2; u++) { var h, c = $a[u]; a < c + t && (h = o ? 1 : -1, i <= (c = (c = Math.atan2(s, c)) < 0 ? ja + c : c) && c <= r || i <= c + ja && c + ja <= r) && (l += h = c > Math.PI / 2 && c < 1.5 * Math.PI ? -h : h) } return l }(y, m, _, x, x + w, b, T, r); u = Math.cos(x + w) * v + y, h = Math.sin(x + w) * _ + m; break; case Za.R: if (c = u = a[d++], p = h = a[d++], S = c + a[d++], M = p + a[d++], n) { if (Ga(c, p, S, p, e, i, r) || Ga(S, p, S, M, e, i, r) || Ga(S, M, c, M, e, i, r) || Ga(c, M, c, p, e, i, r)) return !0 } else l = (l += qa(S, p, S, M, i, r)) + qa(c, M, c, p, i, r); break; case Za.Z: if (n) { if (Ga(u, h, c, p, e, i, r)) return !0 } else l += qa(u, h, c, p, i, r); u = c, h = p } } return n || (t = h, o = p, Math.abs(t - o) < Ka) || (l += qa(u, h, c, p, i, r) || 0), 0 !== l } var ns, is = B({ fill: "#000", stroke: null, strokePercent: 1, fillOpacity: 1, strokeOpacity: 1, lineDashOffset: 0, lineWidth: 1, lineCap: "butt", miterLimit: 10, strokeNoScale: !1, strokeFirst: !1 }, ua), rs = { style: B({ fill: !0, stroke: !0, strokePercent: !0, fillOpacity: !0, strokeOpacity: !0, lineDashOffset: !0, lineWidth: !0, miterLimit: !0 }, ha.style) }, os = gr.concat(["invisible", "culling", "z", "z2", "zlevel", "parent"]), as = (u(l, ns = i), l.prototype.update = function () { var e = this, t = (ns.prototype.update.call(this), this.style); if (t.decal) { var n, i = this._decalEl = this._decalEl || new l, r = (i.buildPath === l.prototype.buildPath && (i.buildPath = function (t) { e.buildPath(t, e.shape) }), i.silent = !0, i.style); for (n in t) r[n] !== t[n] && (r[n] = t[n]); r.fill = t.fill ? t.decal : null, r.decal = null, r.shadowColor = null, t.strokeFirst && (r.stroke = null); for (var o = 0; o < os.length; ++o)i[os[o]] = this[os[o]]; i.__dirty |= yn } else this._decalEl && (this._decalEl = null) }, l.prototype.getDecalElement = function () { return this._decalEl }, l.prototype._init = function (t) { var e = D(t), n = (this.shape = this.getDefaultShape(), this.getDefaultStyle()); n && this.useStyle(n); for (var i = 0; i < e.length; i++) { var r = e[i], o = t[r]; "style" === r ? this.style ? P(this.style, o) : this.useStyle(o) : "shape" === r ? P(this.shape, o) : ns.prototype.attrKV.call(this, r, o) } this.style || this.useStyle({}) }, l.prototype.getDefaultStyle = function () { return null }, l.prototype.getDefaultShape = function () { return {} }, l.prototype.canBeInsideText = function () { return this.hasFill() }, l.prototype.getInsideTextFill = function () { var t, e = this.style.fill; if ("none" !== e) { if (H(e)) return .5 < (t = _i(e, 0)) ? or : .2 < t ? "#eee" : ar; if (e) return ar } return or }, l.prototype.getInsideTextStroke = function (t) { var e = this.style.fill; if (H(e)) { var n = this.__zr; if (!(!n || !n.isDarkMode()) == _i(t, 0) < .4) return e } }, l.prototype.buildPath = function (t, e, n) { }, l.prototype.pathUpdated = function () { this.__dirty &= ~mn }, l.prototype.getUpdatedPathProxy = function (t) { return this.path || this.createPathProxy(), this.path.beginPath(), this.buildPath(this.path, this.shape, t), this.path }, l.prototype.createPathProxy = function () { this.path = new Wa(!1) }, l.prototype.hasStroke = function () { var t = this.style, e = t.stroke; return !(null == e || "none" === e || !(0 < t.lineWidth)) }, l.prototype.hasFill = function () { var t = this.style.fill; return null != t && "none" !== t }, l.prototype.getBoundingRect = function () { var t, e, n = this._rect, i = this.style, r = !n; return r && (t = !1, this.path || (t = !0, this.createPathProxy()), e = this.path, (t || this.__dirty & mn) && (e.beginPath(), this.buildPath(e, this.shape, !1), this.pathUpdated()), n = e.getBoundingRect()), this._rect = n, this.hasStroke() && this.path && 0 < this.path.len() ? (t = this._rectStroke || (this._rectStroke = n.clone()), (this.__dirty || r) && (t.copy(n), e = i.strokeNoScale ? this.getLineScale() : 1, r = i.lineWidth, this.hasFill() || (i = this.strokeContainThreshold, r = Math.max(r, null == i ? 4 : i)), 1e-10 < e) && (t.width += r / e, t.height += r / e, t.x -= r / e / 2, t.y -= r / e / 2), t) : n }, l.prototype.contain = function (t, e) { var n = this.transformCoordToLocal(t, e), i = this.getBoundingRect(), r = this.style; if (t = n[0], e = n[1], i.contain(t, e)) { n = this.path; if (this.hasStroke()) { i = r.lineWidth, r = r.strokeNoScale ? this.getLineScale() : 1; if (1e-10 < r && (this.hasFill() || (i = Math.max(i, this.strokeContainThreshold)), es(n, i / r, !0, t, e))) return !0 } if (this.hasFill()) return es(n, 0, !1, t, e) } return !1 }, l.prototype.dirtyShape = function () { this.__dirty |= mn, this._rect && (this._rect = null), this._decalEl && this._decalEl.dirtyShape(), this.markRedraw() }, l.prototype.dirty = function () { this.dirtyStyle(), this.dirtyShape() }, l.prototype.animateShape = function (t) { return this.animate("shape", t) }, l.prototype.updateDuringAnimation = function (t) { "style" === t ? this.dirtyStyle() : "shape" === t ? this.dirtyShape() : this.markRedraw() }, l.prototype.attrKV = function (t, e) { "shape" === t ? this.setShape(e) : ns.prototype.attrKV.call(this, t, e) }, l.prototype.setShape = function (t, e) { var n = (n = this.shape) || (this.shape = {}); return "string" == typeof t ? n[t] = e : P(n, t), this.dirtyShape(), this }, l.prototype.shapeChanged = function () { return !!(this.__dirty & mn) }, l.prototype.createStyle = function (t) { return Et(is, t) }, l.prototype._innerSaveToNormal = function (t) { ns.prototype._innerSaveToNormal.call(this, t); var e = this._normalState; t.shape && !e.shape && (e.shape = P({}, this.shape)) }, l.prototype._applyStateObj = function (t, e, n, i, r, o) { ns.prototype._applyStateObj.call(this, t, e, n, i, r, o); var a, s = !(e && i); if (e && e.shape ? r ? i ? a = e.shape : (a = P({}, n.shape), P(a, e.shape)) : (a = P({}, (i ? this : n).shape), P(a, e.shape)) : s && (a = n.shape), a) if (r) { this.shape = P({}, this.shape); for (var l = {}, u = D(a), h = 0; h < u.length; h++) { var c = u[h]; "object" == typeof a[c] ? this.shape[c] = a[c] : l[c] = a[c] } this._transitionState(t, { shape: l }, o) } else this.shape = a, this.dirtyShape() }, l.prototype._mergeStates = function (t) { for (var e, n = ns.prototype._mergeStates.call(this, t), i = 0; i < t.length; i++) { var r = t[i]; r.shape && this._mergeStyle(e = e || {}, r.shape) } return e && (n.shape = e), n }, l.prototype.getAnimationStyleProps = function () { return rs }, l.prototype.isZeroArea = function () { return !1 }, l.extend = function (n) { u(r, i = l), r.prototype.getDefaultStyle = function () { return y(n.style) }, r.prototype.getDefaultShape = function () { return y(n.shape) }; var i, t, e = r; function r(t) { var e = i.call(this, t) || this; return n.init && n.init.call(e, t), e } for (t in n) "function" == typeof n[t] && (e.prototype[t] = n[t]); return e }, l.initDefaultProps = ((ou = l.prototype).type = "path", ou.strokeContainThreshold = 5, ou.segmentIgnoreThreshold = 0, ou.subPixelOptimize = !1, ou.autoBatch = !1, void (ou.__dirty = 2 | yn | mn)), l); function l(t) { return ns.call(this, t) || this } var ss, ls = B({ strokeFirst: !0, font: j, x: 0, y: 0, textAlign: "left", textBaseline: "top", miterLimit: 2 }, is), us = (u(hs, ss = i), hs.prototype.hasStroke = function () { var t = this.style, e = t.stroke; return null != e && "none" !== e && 0 < t.lineWidth }, hs.prototype.hasFill = function () { var t = this.style.fill; return null != t && "none" !== t }, hs.prototype.createStyle = function (t) { return Et(ls, t) }, hs.prototype.setBoundingRect = function (t) { this._rect = t }, hs.prototype.getBoundingRect = function () { var t, e = this.style; return this._rect || (null != (t = e.text) ? t += "" : t = "", (t = _r(t, e.font, e.textAlign, e.textBaseline)).x += e.x || 0, t.y += e.y || 0, this.hasStroke() && (e = e.lineWidth, t.x -= e / 2, t.y -= e / 2, t.width += e, t.height += e), this._rect = t), this._rect }, hs.initDefaultProps = void (hs.prototype.dirtyRectTolerance = 10), hs); function hs() { return null !== ss && ss.apply(this, arguments) || this } us.prototype.type = "tspan"; var cs = B({ x: 0, y: 0 }, ua), ps = { style: B({ x: !0, y: !0, width: !0, height: !0, sx: !0, sy: !0, sWidth: !0, sHeight: !0 }, ha.style) }; u(gs, ds = i), gs.prototype.createStyle = function (t) { return Et(cs, t) }, gs.prototype._getSize = function (t) { var e, n = this.style, i = n[t]; return null != i ? i : (i = (i = n.image) && "string" != typeof i && i.width && i.height ? n.image : this.__image) ? null == (e = n[n = "width" === t ? "height" : "width"]) ? i[t] : i[t] / i[n] * e : 0 }, gs.prototype.getWidth = function () { return this._getSize("width") }, gs.prototype.getHeight = function () { return this._getSize("height") }, gs.prototype.getAnimationStyleProps = function () { return ps }, gs.prototype.getBoundingRect = function () { var t = this.style; return this._rect || (this._rect = new z(t.x || 0, t.y || 0, this.getWidth(), this.getHeight())), this._rect }; var ds, fs = gs; function gs() { return null !== ds && ds.apply(this, arguments) || this } fs.prototype.type = "image"; var ys = Math.round; function ms(t, e, n) { var i, r, o; if (e) return i = e.x1, r = e.x2, o = e.y1, e = e.y2, t.x1 = i, t.x2 = r, t.y1 = o, t.y2 = e, (n = n && n.lineWidth) && (ys(2 * i) === ys(2 * r) && (t.x1 = t.x2 = vs(i, n, !0)), ys(2 * o) === ys(2 * e)) && (t.y1 = t.y2 = vs(o, n, !0)), t } function vs(t, e, n) { var i; return e ? ((i = ys(2 * t)) + ys(e)) % 2 == 0 ? i / 2 : (i + (n ? 1 : -1)) / 2 : t } function _s() { this.x = 0, this.y = 0, this.width = 0, this.height = 0 } var xs, ws = {}, bs = (u(Ss, xs = as), Ss.prototype.getDefaultShape = function () { return new _s }, Ss.prototype.buildPath = function (t, e) { var n, i, r, o, a, s, l, u, h, c, p, d, f, g; this.subPixelOptimize ? (n = (a = function (t, e, n) { var i, r, o; if (e) return i = e.x, r = e.y, o = e.width, e = e.height, t.x = i, t.y = r, t.width = o, t.height = e, (n = n && n.lineWidth) && (t.x = vs(i, n, !0), t.y = vs(r, n, !0), t.width = Math.max(vs(i + o, n, !1) - t.x, 0 === o ? 0 : 1), t.height = Math.max(vs(r + e, n, !1) - t.y, 0 === e ? 0 : 1)), t }(ws, e, this.style)).x, i = a.y, r = a.width, o = a.height, a.r = e.r, e = a) : (n = e.x, i = e.y, r = e.width, o = e.height), e.r ? (a = t, p = (e = e).x, d = e.y, f = e.width, g = e.height, e = e.r, f < 0 && (p += f, f = -f), g < 0 && (d += g, g = -g), "number" == typeof e ? s = l = u = h = e : e instanceof Array ? 1 === e.length ? s = l = u = h = e[0] : 2 === e.length ? (s = u = e[0], l = h = e[1]) : 3 === e.length ? (s = e[0], l = h = e[1], u = e[2]) : (s = e[0], l = e[1], u = e[2], h = e[3]) : s = l = u = h = 0, f < s + l && (s *= f / (c = s + l), l *= f / c), f < u + h && (u *= f / (c = u + h), h *= f / c), g < l + u && (l *= g / (c = l + u), u *= g / c), g < s + h && (s *= g / (c = s + h), h *= g / c), a.moveTo(p + s, d), a.lineTo(p + f - l, d), 0 !== l && a.arc(p + f - l, d + l, l, -Math.PI / 2, 0), a.lineTo(p + f, d + g - u), 0 !== u && a.arc(p + f - u, d + g - u, u, 0, Math.PI / 2), a.lineTo(p + h, d + g), 0 !== h && a.arc(p + h, d + g - h, h, Math.PI / 2, Math.PI), a.lineTo(p, d + s), 0 !== s && a.arc(p + s, d + s, s, Math.PI, 1.5 * Math.PI)) : t.rect(n, i, r, o) }, Ss.prototype.isZeroArea = function () { return !this.shape.width || !this.shape.height }, Ss); function Ss(t) { return xs.call(this, t) || this } bs.prototype.type = "rect"; var Ms, Ts = { fill: "#000" }, Cs = { style: B({ fill: !0, stroke: !0, fillOpacity: !0, strokeOpacity: !0, lineWidth: !0, fontSize: !0, lineHeight: !0, width: !0, height: !0, textShadowColor: !0, textShadowBlur: !0, textShadowOffsetX: !0, textShadowOffsetY: !0, backgroundColor: !0, padding: !0, borderColor: !0, borderWidth: !0, borderRadius: !0 }, ha.style) }, ks = (u(Ls, Ms = i), Ls.prototype.childrenRef = function () { return this._children }, Ls.prototype.update = function () { Ms.prototype.update.call(this), this.styleChanged() && this._updateSubTexts(); for (var t = 0; t < this._children.length; t++) { var e = this._children[t]; e.zlevel = this.zlevel, e.z = this.z, e.z2 = this.z2, e.culling = this.culling, e.cursor = this.cursor, e.invisible = this.invisible } }, Ls.prototype.updateTransform = function () { var t = this.innerTransformable; t ? (t.updateTransform(), t.transform && (this.transform = t.transform)) : Ms.prototype.updateTransform.call(this) }, Ls.prototype.getLocalTransform = function (t) { var e = this.innerTransformable; return e ? e.getLocalTransform(t) : Ms.prototype.getLocalTransform.call(this, t) }, Ls.prototype.getComputedTransform = function () { return this.__hostTarget && (this.__hostTarget.getComputedTransform(), this.__hostTarget.updateInnerText(!0)), Ms.prototype.getComputedTransform.call(this) }, Ls.prototype._updateSubTexts = function () { var t; this._childCursor = 0, Os(t = this.style), O(t.rich, Os), this.style.rich ? this._updateRichTexts() : this._updatePlainTexts(), this._children.length = this._childCursor, this.styleUpdated() }, Ls.prototype.addSelfToZr = function (t) { Ms.prototype.addSelfToZr.call(this, t); for (var e = 0; e < this._children.length; e++)this._children[e].__zr = t }, Ls.prototype.removeSelfFromZr = function (t) { Ms.prototype.removeSelfFromZr.call(this, t); for (var e = 0; e < this._children.length; e++)this._children[e].__zr = null }, Ls.prototype.getBoundingRect = function () { if (this.styleChanged() && this._updateSubTexts(), !this._rect) { for (var t = new z(0, 0, 0, 0), e = this._children, n = [], i = null, r = 0; r < e.length; r++) { var o = e[r], a = o.getBoundingRect(), o = o.getLocalTransform(n); o ? (t.copy(a), t.applyTransform(o), (i = i || t.clone()).union(t)) : (i = i || a.clone()).union(a) } this._rect = i || t } return this._rect }, Ls.prototype.setDefaultTextStyle = function (t) { this._defaultStyle = t || Ts }, Ls.prototype.setTextContent = function (t) { }, Ls.prototype._mergeStyle = function (t, e) { var n, i; return e && (n = e.rich, i = t.rich || n && {}, P(t, e), n && i ? (this._mergeRich(i, n), t.rich = i) : i && (t.rich = i)), t }, Ls.prototype._mergeRich = function (t, e) { for (var n = D(e), i = 0; i < n.length; i++) { var r = n[i]; t[r] = t[r] || {}, P(t[r], e[r]) } }, Ls.prototype.getAnimationStyleProps = function () { return Cs }, Ls.prototype._getOrCreateChild = function (t) { var e = this._children[this._childCursor]; return e && e instanceof t || (e = new t), (this._children[this._childCursor++] = e).__zr = this.__zr, e.parent = this, e }, Ls.prototype._updatePlainTexts = function () { var t, e = this.style, n = e.font || j, i = e.padding, r = function (t, e) { null != t && (t += ""); var n, i = e.overflow, r = e.padding, o = e.font, a = "truncate" === i, s = br(o), l = N(e.lineHeight, s), u = !!e.backgroundColor, h = "truncate" === e.lineOverflow, c = e.width, i = (n = null == c || "break" !== i && "breakAll" !== i ? t ? t.split("\n") : [] : t ? aa(t, e.font, c, "breakAll" === i, 0).lines : []).length * l, p = N(e.height, i); if (p < i && h && (h = Math.floor(p / l), n = n.slice(0, h)), t && a && null != c) for (var d = Qo(c, o, e.ellipsis, { minChar: e.truncateMinChar, placeholder: e.placeholder }), f = 0; f < n.length; f++)n[f] = Jo(n[f], d); for (var h = p, g = 0, f = 0; f < n.length; f++)g = Math.max(mr(n[f], o), g); return null == c && (c = g), t = g, r && (h += r[0] + r[2], t += r[1] + r[3], c += r[1] + r[3]), { lines: n, height: p, outerWidth: t = u ? c : t, outerHeight: h, lineHeight: l, calculatedLineHeight: s, contentWidth: g, contentHeight: i, width: c } }(zs(e), e), o = Bs(e), a = !!e.backgroundColor, s = r.outerHeight, l = r.outerWidth, u = r.contentWidth, h = r.lines, c = r.lineHeight, p = this._defaultStyle, d = e.x || 0, f = e.y || 0, g = e.align || p.align || "left", y = e.verticalAlign || p.verticalAlign || "top", m = d, v = wr(f, r.contentHeight, y); (o || i) && (t = xr(d, l, g), f = wr(f, s, y), o) && this._renderBackground(e, e, t, f, l, s), v += c / 2, i && (m = Es(d, g, i), "top" === y ? v += i[0] : "bottom" === y && (v -= i[2])); for (var _ = 0, o = !1, x = (Ns(("fill" in e ? e : (o = !0, p)).fill)), w = (Rs("stroke" in e ? e.stroke : a || p.autoStroke && !o ? null : (_ = 2, p.stroke))), b = 0 < e.textShadowBlur, S = null != e.width && ("truncate" === e.overflow || "break" === e.overflow || "breakAll" === e.overflow), M = r.calculatedLineHeight, T = 0; T < h.length; T++) { var C = this._getOrCreateChild(us), k = C.createStyle(); C.useStyle(k), k.text = h[T], k.x = m, k.y = v, g && (k.textAlign = g), k.textBaseline = "middle", k.opacity = e.opacity, k.strokeFirst = !0, b && (k.shadowBlur = e.textShadowBlur || 0, k.shadowColor = e.textShadowColor || "transparent", k.shadowOffsetX = e.textShadowOffsetX || 0, k.shadowOffsetY = e.textShadowOffsetY || 0), k.stroke = w, k.fill = x, w && (k.lineWidth = e.lineWidth || _, k.lineDash = e.lineDash, k.lineDashOffset = e.lineDashOffset || 0), k.font = n, Ps(k, e), v += c, S && C.setBoundingRect(new z(xr(k.x, e.width, k.textAlign), wr(k.y, M, k.textBaseline), u, M)) } }, Ls.prototype._updateRichTexts = function () { var t = this.style, e = ia(zs(t), t), n = e.width, i = e.outerWidth, r = e.outerHeight, o = t.padding, a = t.x || 0, s = t.y || 0, l = this._defaultStyle, u = t.align || l.align, l = t.verticalAlign || l.verticalAlign, a = xr(a, i, u), u = wr(s, r, l), h = a, c = u, p = (o && (h += o[3], c += o[0]), h + n); Bs(t) && this._renderBackground(t, t, a, u, i, r); for (var d = !!t.backgroundColor, f = 0; f < e.lines.length; f++) { for (var g = e.lines[f], y = g.tokens, m = y.length, v = g.lineHeight, _ = g.width, x = 0, w = h, b = p, S = m - 1, M = void 0; x < m && (!(M = y[x]).align || "left" === M.align);)this._placeToken(M, t, v, c, w, "left", d), _ -= M.width, w += M.width, x++; for (; 0 <= S && "right" === (M = y[S]).align;)this._placeToken(M, t, v, c, b, "right", d), _ -= M.width, b -= M.width, S--; for (w += (n - (w - h) - (p - b) - _) / 2; x <= S;)M = y[x], this._placeToken(M, t, v, c, w + M.width / 2, "center", d), w += M.width, x++; c += v } }, Ls.prototype._placeToken = function (t, e, n, i, r, o, a) { var s = e.rich[t.styleName] || {}, l = (s.text = t.text, t.verticalAlign), u = i + n / 2, l = ("top" === l ? u = i + t.height / 2 : "bottom" === l && (u = i + n - t.height / 2), !t.isLineHolder && Bs(s) && this._renderBackground(s, e, "right" === o ? r - t.width : "center" === o ? r - t.width / 2 : r, u - t.height / 2, t.width, t.height), !!s.backgroundColor), i = t.textPadding, n = (i && (r = Es(r, o, i), u -= t.height / 2 - i[0] - t.innerHeight / 2), this._getOrCreateChild(us)), i = n.createStyle(), h = (n.useStyle(i), this._defaultStyle), c = !1, p = 0, d = Ns(("fill" in s ? s : "fill" in e ? e : (c = !0, h)).fill), l = Rs("stroke" in s ? s.stroke : "stroke" in e ? e.stroke : l || a || h.autoStroke && !c ? null : (p = 2, h.stroke)), a = 0 < s.textShadowBlur || 0 < e.textShadowBlur, c = (i.text = t.text, i.x = r, i.y = u, a && (i.shadowBlur = s.textShadowBlur || e.textShadowBlur || 0, i.shadowColor = s.textShadowColor || e.textShadowColor || "transparent", i.shadowOffsetX = s.textShadowOffsetX || e.textShadowOffsetX || 0, i.shadowOffsetY = s.textShadowOffsetY || e.textShadowOffsetY || 0), i.textAlign = o, i.textBaseline = "middle", i.font = t.font || j, i.opacity = bt(s.opacity, e.opacity, 1), Ps(i, s), l && (i.lineWidth = bt(s.lineWidth, e.lineWidth, p), i.lineDash = N(s.lineDash, e.lineDash), i.lineDashOffset = e.lineDashOffset || 0, i.stroke = l), d && (i.fill = d), t.contentWidth), h = t.contentHeight; n.setBoundingRect(new z(xr(i.x, c, i.textAlign), wr(i.y, h, i.textBaseline), c, h)) }, Ls.prototype._renderBackground = function (t, e, n, i, r, o) { var a, s, l, u, h = t.backgroundColor, c = t.borderWidth, p = t.borderColor, d = h && h.image, f = h && !d, g = t.borderRadius, y = this, g = ((f || t.lineHeight || c && p) && ((a = this._getOrCreateChild(bs)).useStyle(a.createStyle()), a.style.fill = null, (u = a.shape).x = n, u.y = i, u.width = r, u.height = o, u.r = g, a.dirtyShape()), f ? ((l = a.style).fill = h || null, l.fillOpacity = N(t.fillOpacity, 1)) : d && ((s = this._getOrCreateChild(fs)).onload = function () { y.dirtyStyle() }, (u = s.style).image = h.image, u.x = n, u.y = i, u.width = r, u.height = o), c && p && ((l = a.style).lineWidth = c, l.stroke = p, l.strokeOpacity = N(t.strokeOpacity, 1), l.lineDash = t.borderDash, l.lineDashOffset = t.borderDashOffset || 0, a.strokeContainThreshold = 0, a.hasFill()) && a.hasStroke() && (l.strokeFirst = !0, l.lineWidth *= 2), (a || s).style); g.shadowBlur = t.shadowBlur || 0, g.shadowColor = t.shadowColor || "transparent", g.shadowOffsetX = t.shadowOffsetX || 0, g.shadowOffsetY = t.shadowOffsetY || 0, g.opacity = bt(t.opacity, e.opacity, 1) }, Ls.makeFont = function (t) { var e, n = ""; return (n = null != (e = t).fontSize || e.fontFamily || e.fontWeight ? [t.fontStyle, t.fontWeight, "string" != typeof (e = t.fontSize) || -1 === e.indexOf("px") && -1 === e.indexOf("rem") && -1 === e.indexOf("em") ? isNaN(+e) ? "12px" : e + "px" : e, t.fontFamily || "sans-serif"].join(" ") : n) && Ct(n) || t.textFont || t.font }, Ls), Ds = { left: !0, right: 1, center: 1 }, Is = { top: 1, bottom: 1, middle: 1 }, As = ["fontStyle", "fontWeight", "fontSize", "fontFamily"]; function Ls(t) { var e = Ms.call(this) || this; return e.type = "text", e._children = [], e._defaultStyle = Ts, e.attr(t), e } function Ps(t, e) { for (var n = 0; n < As.length; n++) { var i = As[n], r = e[i]; null != r && (t[i] = r) } } function Os(t) { var e; t && (t.font = ks.makeFont(t), e = t.align, t.align = null == (e = "middle" === e ? "center" : e) || Ds[e] ? e : "left", e = t.verticalAlign, t.verticalAlign = null == (e = "center" === e ? "middle" : e) || Is[e] ? e : "top", t.padding) && (t.padding = Mt(t.padding)) } function Rs(t, e) { return null == t || e <= 0 || "transparent" === t || "none" === t ? null : t.image || t.colorStops ? "#000" : t } function Ns(t) { return null == t || "none" === t ? null : t.image || t.colorStops ? "#000" : t } function Es(t, e, n) { return "right" === e ? t - n[1] : "center" === e ? t + n[3] / 2 - n[1] / 2 : t + n[3] } function zs(t) { t = t.text; return null != t && (t += ""), t } function Bs(t) { return !!(t.backgroundColor || t.lineHeight || t.borderWidth && t.borderColor) } var Fs = Mo(), Vs = 1, Hs = {}, Ws = Mo(), Gs = Mo(), Us = 0, Xs = 1, Ys = 2, qs = ["emphasis", "blur", "select"], Zs = ["normal", "emphasis", "blur", "select"], js = "highlight", Ks = "downplay", $s = "select", Qs = "unselect", Js = "toggleSelect"; function tl(t) { return null != t && "none" !== t } var el = new Jn(100); function nl(t) { var e; return H(t) ? ((e = el.get(t)) || (e = gi(t, -.1), el.put(t, e)), e) : mt(t) ? ((e = P({}, t)).colorStops = F(t.colorStops, function (t) { return { offset: t.offset, color: gi(t.color, -.1) } }), e) : t } function il(t, e, n) { t.onHoverStateChange && (t.hoverState || 0) !== n && t.onHoverStateChange(e), t.hoverState = n } function rl(t) { il(t, "emphasis", Ys) } function ol(t) { t.hoverState === Ys && il(t, "normal", Us) } function al(t) { il(t, "blur", Xs) } function sl(t) { t.hoverState === Xs && il(t, "normal", Us) } function ll(t) { t.selected = !0 } function ul(t) { t.selected = !1 } function hl(t, e, n) { e(t, n) } function cl(t, e, n) { hl(t, e, n), t.isGroup && t.traverse(function (t) { hl(t, e, n) }) } function pl(t, e) { switch (e) { case "emphasis": t.hoverState = Ys; break; case "normal": t.hoverState = Us; break; case "blur": t.hoverState = Xs; break; case "select": t.selected = !0 } } function dl(t, e, n) { var i = 0 <= k(t.currentStates, e), r = t.style.opacity, t = i ? null : function (t, e, n, i) { for (var r = t.style, o = {}, a = 0; a < e.length; a++) { var s = e[a], l = r[s]; o[s] = null == l ? i && i[s] : l } for (a = 0; a < t.animators.length; a++) { var u = t.animators[a]; u.__fromStateTransition && u.__fromStateTransition.indexOf(n) < 0 && "style" === u.targetName && u.saveTo(o, e) } return o }(t, ["opacity"], e, { opacity: 1 }), e = (n = n || {}).style || {}; return null == e.opacity && (n = P({}, n), e = P({ opacity: i ? r : .1 * t.opacity }, e), n.style = e), n } function fl(t, e) { var n, i, r, o, a, s = this.states[t]; if (this.style) { if ("emphasis" === t) return n = this, i = s, e = (e = e) && 0 <= k(e, "select"), a = !1, n instanceof as && (r = Ws(n), o = e && r.selectFill || r.normalFill, e = e && r.selectStroke || r.normalStroke, tl(o) || tl(e)) && ("inherit" === (r = (i = i || {}).style || {}).fill ? (a = !0, i = P({}, i), (r = P({}, r)).fill = o) : !tl(r.fill) && tl(o) ? (a = !0, i = P({}, i), (r = P({}, r)).fill = nl(o)) : !tl(r.stroke) && tl(e) && (a || (i = P({}, i), r = P({}, r)), r.stroke = nl(e)), i.style = r), i && null == i.z2 && (a || (i = P({}, i)), o = n.z2EmphasisLift, i.z2 = n.z2 + (null != o ? o : 10)), i; if ("blur" === t) return dl(this, t, s); if ("select" === t) return e = this, (r = s) && null == r.z2 && (r = P({}, r), a = e.z2SelectLift, r.z2 = e.z2 + (null != a ? a : 9)), r } return s } function gl(t) { t.stateProxy = fl; var e = t.getTextContent(), t = t.getTextGuideLine(); e && (e.stateProxy = fl), t && (t.stateProxy = fl) } function yl(t, e) { Sl(t, e) || t.__highByOuter || cl(t, rl) } function ml(t, e) { Sl(t, e) || t.__highByOuter || cl(t, ol) } function vl(t, e) { t.__highByOuter |= 1 << (e || 0), cl(t, rl) } function _l(t, e) { (t.__highByOuter &= ~(1 << (e || 0))) || cl(t, ol) } function xl(t) { cl(t, sl) } function wl(t) { cl(t, ll) } function bl(t) { cl(t, ul) } function Sl(t, e) { return t.__highDownSilentOnTouch && e.zrByTouch } function Ml(r) { var e = r.getModel(), o = [], a = []; e.eachComponent(function (t, e) { var n = Gs(e), t = "series" === t, i = t ? r.getViewOfSeriesModel(e) : r.getViewOfComponentModel(e); t || a.push(i), n.isBlured && (i.group.traverse(function (t) { sl(t) }), t) && o.push(e), n.isBlured = !1 }), O(a, function (t) { t && t.toggleBlurSeries && t.toggleBlurSeries(o, !1, e) }) } function Tl(t, o, a, s) { var l, u, h, n = s.getModel(); function c(t, e) { for (var n = 0; n < e.length; n++) { var i = t.getItemGraphicEl(e[n]); i && xl(i) } } a = a || "coordinateSystem", null != t && o && "none" !== o && (l = n.getSeriesByIndex(t), (u = l.coordinateSystem) && u.master && (u = u.master), h = [], n.eachSeries(function (t) { var e = l === t, n = t.coordinateSystem; if (n && n.master && (n = n.master), !("series" === a && !e || "coordinateSystem" === a && !(n && u ? n === u : e) || "series" === o && e)) { if (s.getViewOfSeriesModel(t).group.traverse(function (t) { t.__highByOuter && e && "self" === o || al(t) }), st(o)) c(t.getData(), o); else if (R(o)) for (var i = D(o), r = 0; r < i.length; r++)c(t.getData(i[r]), o[i[r]]); h.push(t), Gs(t).isBlured = !0 } }), n.eachComponent(function (t, e) { "series" !== t && (t = s.getViewOfComponentModel(e)) && t.toggleBlurSeries && t.toggleBlurSeries(h, !0, n) })) } function Cl(t, e, n) { null != t && null != e && (t = n.getModel().getComponent(t, e)) && (Gs(t).isBlured = !0, e = n.getViewOfComponentModel(t)) && e.focusBlurEnabled && e.group.traverse(function (t) { al(t) }) } function kl(t, e, n, i) { var r = { focusSelf: !1, dispatchers: null }; if (null == t || "series" === t || null == e || null == n) return r; t = i.getModel().getComponent(t, e); if (!t) return r; e = i.getViewOfComponentModel(t); if (!e || !e.findHighDownDispatchers) return r; for (var o, a = e.findHighDownDispatchers(n), s = 0; s < a.length; s++)if ("self" === Fs(a[s]).focus) { o = !0; break } return { focusSelf: o, dispatchers: a } } function Dl(i) { O(i.getAllData(), function (t) { var e = t.data, n = t.type; e.eachItemGraphicEl(function (t, e) { (i.isSelected(e, n) ? wl : bl)(t) }) }) } function Il(t, e, n) { Rl(t, !0), cl(t, gl); t = Fs(t), null != e ? (t.focus = e, t.blurScope = n) : t.focus && (t.focus = null) } function Al(t, e, n, i) { i ? Rl(t, !1) : Il(t, e, n) } var Ll = ["emphasis", "blur", "select"], Pl = { itemStyle: "getItemStyle", lineStyle: "getLineStyle", areaStyle: "getAreaStyle" }; function Ol(t, e, n, i) { n = n || "itemStyle"; for (var r = 0; r < Ll.length; r++) { var o = Ll[r], a = e.getModel([o, n]); t.ensureState(o).style = i ? i(a) : a[Pl[n]]() } } function Rl(t, e) { var e = !1 === e, n = t; t.highDownSilentOnTouch && (n.__highDownSilentOnTouch = t.highDownSilentOnTouch), e && !n.__highDownDispatcher || (n.__highByOuter = n.__highByOuter || 0, n.__highDownDispatcher = !e) } function Nl(t) { return !(!t || !t.__highDownDispatcher) } function El(t) { t = t.type; return t === $s || t === Qs || t === Js } function zl(t) { t = t.type; return t === js || t === Ks } var Bl = Wa.CMD, Fl = [[], [], []], Vl = Math.sqrt, Hl = Math.atan2; var Wl = Math.sqrt, Gl = Math.sin, Ul = Math.cos, Xl = Math.PI; function Yl(t) { return Math.sqrt(t[0] * t[0] + t[1] * t[1]) } function ql(t, e) { return (t[0] * e[0] + t[1] * e[1]) / (Yl(t) * Yl(e)) } function Zl(t, e) { return (t[0] * e[1] < t[1] * e[0] ? -1 : 1) * Math.acos(ql(t, e)) } function jl(t, e, n, i, r, o, a, s, l, u, h) { var l = l * (Xl / 180), c = Ul(l) * (t - n) / 2 + Gl(l) * (e - i) / 2, p = -1 * Gl(l) * (t - n) / 2 + Ul(l) * (e - i) / 2, d = c * c / (a * a) + p * p / (s * s), d = (1 < d && (a *= Wl(d), s *= Wl(d)), (r === o ? -1 : 1) * Wl((a * a * (s * s) - a * a * (p * p) - s * s * (c * c)) / (a * a * (p * p) + s * s * (c * c))) || 0), r = d * a * p / s, d = d * -s * c / a, t = (t + n) / 2 + Ul(l) * r - Gl(l) * d, n = (e + i) / 2 + Gl(l) * r + Ul(l) * d, e = Zl([1, 0], [(c - r) / a, (p - d) / s]), i = [(c - r) / a, (p - d) / s], c = [(-1 * c - r) / a, (-1 * p - d) / s], r = Zl(i, c); ql(i, c) <= -1 && (r = Xl), (r = 1 <= ql(i, c) ? 0 : r) < 0 && (p = Math.round(r / Xl * 1e6) / 1e6, r = 2 * Xl + p % 2 * Xl), h.addData(u, t, n, a, s, e, r, l, o) } var Kl = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi, $l = /-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g; u(tu, Ql = as), tu.prototype.applyTransform = function (t) { }; var Ql, Jl = tu; function tu() { return null !== Ql && Ql.apply(this, arguments) || this } function eu(t) { return null != t.setData } function nu(t, e) { var S = function (t) { var e = new Wa; if (t) { var n, i = 0, r = 0, o = i, a = r, s = Wa.CMD, l = t.match(Kl); if (l) { for (var u = 0; u < l.length; u++) { for (var h = l[u], c = h.charAt(0), p = void 0, d = h.match($l) || [], f = d.length, g = 0; g < f; g++)d[g] = parseFloat(d[g]); for (var y = 0; y < f;) { var m = void 0, v = void 0, _ = void 0, x = void 0, w = void 0, b = void 0, S = void 0, M = i, T = r, C = void 0, k = void 0; switch (c) { case "l": i += d[y++], r += d[y++], p = s.L, e.addData(p, i, r); break; case "L": i = d[y++], r = d[y++], p = s.L, e.addData(p, i, r); break; case "m": i += d[y++], r += d[y++], p = s.M, e.addData(p, i, r), o = i, a = r, c = "l"; break; case "M": i = d[y++], r = d[y++], p = s.M, e.addData(p, i, r), o = i, a = r, c = "L"; break; case "h": i += d[y++], p = s.L, e.addData(p, i, r); break; case "H": i = d[y++], p = s.L, e.addData(p, i, r); break; case "v": r += d[y++], p = s.L, e.addData(p, i, r); break; case "V": r = d[y++], p = s.L, e.addData(p, i, r); break; case "C": p = s.C, e.addData(p, d[y++], d[y++], d[y++], d[y++], d[y++], d[y++]), i = d[y - 2], r = d[y - 1]; break; case "c": p = s.C, e.addData(p, d[y++] + i, d[y++] + r, d[y++] + i, d[y++] + r, d[y++] + i, d[y++] + r), i += d[y - 2], r += d[y - 1]; break; case "S": m = i, v = r, C = e.len(), k = e.data, n === s.C && (m += i - k[C - 4], v += r - k[C - 3]), p = s.C, M = d[y++], T = d[y++], i = d[y++], r = d[y++], e.addData(p, m, v, M, T, i, r); break; case "s": m = i, v = r, C = e.len(), k = e.data, n === s.C && (m += i - k[C - 4], v += r - k[C - 3]), p = s.C, M = i + d[y++], T = r + d[y++], i += d[y++], r += d[y++], e.addData(p, m, v, M, T, i, r); break; case "Q": M = d[y++], T = d[y++], i = d[y++], r = d[y++], p = s.Q, e.addData(p, M, T, i, r); break; case "q": M = d[y++] + i, T = d[y++] + r, i += d[y++], r += d[y++], p = s.Q, e.addData(p, M, T, i, r); break; case "T": m = i, v = r, C = e.len(), k = e.data, n === s.Q && (m += i - k[C - 4], v += r - k[C - 3]), i = d[y++], r = d[y++], p = s.Q, e.addData(p, m, v, i, r); break; case "t": m = i, v = r, C = e.len(), k = e.data, n === s.Q && (m += i - k[C - 4], v += r - k[C - 3]), i += d[y++], r += d[y++], p = s.Q, e.addData(p, m, v, i, r); break; case "A": _ = d[y++], x = d[y++], w = d[y++], b = d[y++], S = d[y++], jl(M = i, T = r, i = d[y++], r = d[y++], b, S, _, x, w, p = s.A, e); break; case "a": _ = d[y++], x = d[y++], w = d[y++], b = d[y++], S = d[y++], jl(M = i, T = r, i += d[y++], r += d[y++], b, S, _, x, w, p = s.A, e) } } "z" !== c && "Z" !== c || (p = s.Z, e.addData(p), i = o, r = a), n = p } e.toStatic() } } return e }(t), t = P({}, e); return t.buildPath = function (t) { var e; eu(t) ? (t.setData(S.data), (e = t.getContext()) && t.rebuildPath(e, 1)) : S.rebuildPath(e = t, 1) }, t.applyTransform = function (t) { var e = S, n = t; if (n) { for (var i, r, o, a, s = e.data, l = e.len(), u = Bl.M, h = Bl.C, c = Bl.L, p = Bl.R, d = Bl.A, f = Bl.Q, g = 0, y = 0; g < l;) { switch (i = s[g++], y = g, r = 0, i) { case u: case c: r = 1; break; case h: r = 3; break; case f: r = 2; break; case d: var m = n[4], v = n[5], _ = Vl(n[0] * n[0] + n[1] * n[1]), x = Vl(n[2] * n[2] + n[3] * n[3]), w = Hl(-n[1] / x, n[0] / _); s[g] *= _, s[g++] += m, s[g] *= x, s[g++] += v, s[g++] *= _, s[g++] *= x, s[g++] += w, s[g++] += w, y = g += 2; break; case p: a[0] = s[g++], a[1] = s[g++], ee(a, a, n), s[y++] = a[0], s[y++] = a[1], a[0] += s[g++], a[1] += s[g++], ee(a, a, n), s[y++] = a[0], s[y++] = a[1] }for (o = 0; o < r; o++) { var b = Fl[o]; b[0] = s[g++], b[1] = s[g++], ee(b, b, n), s[y++] = b[0], s[y++] = b[1] } } e.increaseVersion() } this.dirtyShape() }, t } function iu() { this.cx = 0, this.cy = 0, this.r = 0 } u(au, ru = as), au.prototype.getDefaultShape = function () { return new iu }, au.prototype.buildPath = function (t, e) { t.moveTo(e.cx + e.r, e.cy), t.arc(e.cx, e.cy, e.r, 0, 2 * Math.PI) }; var ru, ou = au; function au(t) { return ru.call(this, t) || this } ou.prototype.type = "circle"; function su() { this.cx = 0, this.cy = 0, this.rx = 0, this.ry = 0 } u(hu, lu = as), hu.prototype.getDefaultShape = function () { return new su }, hu.prototype.buildPath = function (t, e) { var n = e.cx, i = e.cy, r = e.rx, e = e.ry, o = .5522848 * r, a = .5522848 * e; t.moveTo(n - r, i), t.bezierCurveTo(n - r, i - a, n - o, i - e, n, i - e), t.bezierCurveTo(n + o, i - e, n + r, i - a, n + r, i), t.bezierCurveTo(n + r, i + a, n + o, i + e, n, i + e), t.bezierCurveTo(n - o, i + e, n - r, i + a, n - r, i), t.closePath() }; var lu, uu = hu; function hu(t) { return lu.call(this, t) || this } uu.prototype.type = "ellipse"; var cu = Math.PI, pu = 2 * cu, du = Math.sin, fu = Math.cos, gu = Math.acos, yu = Math.atan2, mu = Math.abs, vu = Math.sqrt, _u = Math.max, xu = Math.min, wu = 1e-4; function bu(t, e, n, i, r, o, a) { var s = t - n, l = e - i, a = (a ? o : -o) / vu(s * s + l * l), l = a * l, a = -a * s, s = t + l, t = e + a, e = n + l, n = i + a, i = (s + e) / 2, u = (t + n) / 2, h = e - s, c = n - t, p = h * h + c * c, o = r - o, s = s * n - e * t, n = (c < 0 ? -1 : 1) * vu(_u(0, o * o * p - s * s)), e = (s * c - h * n) / p, t = (-s * h - c * n) / p, d = (s * c + h * n) / p, s = (-s * h + c * n) / p, h = e - i, c = t - u, n = d - i, p = s - u; return n * n + p * p < h * h + c * c && (e = d, t = s), { cx: e, cy: t, x0: -l, y0: -a, x1: e * (r / o - 1), y1: t * (r / o - 1) } } function Su(t, e) { var n, i, r, o, a, s, l, u, h, c, p, d, f, g, y, m, v, _, x, w, b, S, M, T, C, k, D, I, A, L, P = _u(e.r, 0), O = _u(e.r0 || 0, 0), R = 0 < P; (R || 0 < O) && (R || (P = O, O = 0), P < O && (R = P, P = O, O = R), R = e.startAngle, n = e.endAngle, isNaN(R) || isNaN(n) || (i = e.cx, r = e.cy, o = !!e.clockwise, w = mu(n - R), wu < (a = pu < w && w % pu) && (w = a), wu < P ? pu - wu < w ? (t.moveTo(i + P * fu(R), r + P * du(R)), t.arc(i, r, P, R, n, !o), wu < O && (t.moveTo(i + O * fu(n), r + O * du(n)), t.arc(i, r, O, n, R, o))) : (g = f = d = p = S = b = c = h = k = C = T = M = u = l = s = a = void 0, y = P * fu(R), m = P * du(R), v = O * fu(n), _ = O * du(n), (x = wu < w) && ((e = e.cornerRadius) && (a = (e = function (t) { if (V(t)) { var e = t.length; if (!e) return t; e = 1 === e ? [t[0], t[0], 0, 0] : 2 === e ? [t[0], t[0], t[1], t[1]] : 3 === e ? t.concat(t[2]) : t } else e = [t, t, t, t]; return e }(e))[0], s = e[1], l = e[2], u = e[3]), e = mu(P - O) / 2, M = xu(e, l), T = xu(e, u), C = xu(e, a), k = xu(e, s), b = h = _u(M, T), S = c = _u(C, k), wu < h || wu < c) && (p = P * fu(n), d = P * du(n), f = O * fu(R), g = O * du(R), w < cu) && ((e = function (t, e, n, i, r, o, a, s) { var l = (s = s - o) * (n = n - t) - (a = a - r) * (i = i - e); if (!(l * l < wu)) return [t + (l = (a * (e - o) - s * (t - r)) / l) * n, e + l * i] }(y, m, f, g, p, d, v, _)) && (M = y - e[0], T = m - e[1], C = p - e[0], k = d - e[1], w = 1 / du(gu((M * C + T * k) / (vu(M * M + T * T) * vu(C * C + k * k))) / 2), M = vu(e[0] * e[0] + e[1] * e[1]), b = xu(h, (P - M) / (1 + w)), S = xu(c, (O - M) / (w - 1)))), x ? wu < b ? (D = xu(l, b), I = xu(u, b), A = bu(f, g, y, m, P, D, o), L = bu(p, d, v, _, P, I, o), t.moveTo(i + A.cx + A.x0, r + A.cy + A.y0), b < h && D === I ? t.arc(i + A.cx, r + A.cy, b, yu(A.y0, A.x0), yu(L.y0, L.x0), !o) : (0 < D && t.arc(i + A.cx, r + A.cy, D, yu(A.y0, A.x0), yu(A.y1, A.x1), !o), t.arc(i, r, P, yu(A.cy + A.y1, A.cx + A.x1), yu(L.cy + L.y1, L.cx + L.x1), !o), 0 < I && t.arc(i + L.cx, r + L.cy, I, yu(L.y1, L.x1), yu(L.y0, L.x0), !o))) : (t.moveTo(i + y, r + m), t.arc(i, r, P, R, n, !o)) : t.moveTo(i + y, r + m), wu < O && x ? wu < S ? (D = xu(a, S), A = bu(v, _, p, d, O, -(I = xu(s, S)), o), L = bu(y, m, f, g, O, -D, o), t.lineTo(i + A.cx + A.x0, r + A.cy + A.y0), S < c && D === I ? t.arc(i + A.cx, r + A.cy, S, yu(A.y0, A.x0), yu(L.y0, L.x0), !o) : (0 < I && t.arc(i + A.cx, r + A.cy, I, yu(A.y0, A.x0), yu(A.y1, A.x1), !o), t.arc(i, r, O, yu(A.cy + A.y1, A.cx + A.x1), yu(L.cy + L.y1, L.cx + L.x1), o), 0 < D && t.arc(i + L.cx, r + L.cy, D, yu(L.y1, L.x1), yu(L.y0, L.x0), !o))) : (t.lineTo(i + v, r + _), t.arc(i, r, O, n, R, o)) : t.lineTo(i + v, r + _)) : t.moveTo(i, r), t.closePath())) } function Mu() { this.cx = 0, this.cy = 0, this.r0 = 0, this.r = 0, this.startAngle = 0, this.endAngle = 2 * Math.PI, this.clockwise = !0, this.cornerRadius = 0 } u(ku, Tu = as), ku.prototype.getDefaultShape = function () { return new Mu }, ku.prototype.buildPath = function (t, e) { Su(t, e) }, ku.prototype.isZeroArea = function () { return this.shape.startAngle === this.shape.endAngle || this.shape.r === this.shape.r0 }; var Tu, Cu = ku; function ku(t) { return Tu.call(this, t) || this } Cu.prototype.type = "sector"; function Du() { this.cx = 0, this.cy = 0, this.r = 0, this.r0 = 0 } u(Lu, Iu = as), Lu.prototype.getDefaultShape = function () { return new Du }, Lu.prototype.buildPath = function (t, e) { var n = e.cx, i = e.cy, r = 2 * Math.PI; t.moveTo(n + e.r, i), t.arc(n, i, e.r, 0, r, !1), t.moveTo(n + e.r0, i), t.arc(n, i, e.r0, 0, r, !0) }; var Iu, Au = Lu; function Lu(t) { return Iu.call(this, t) || this } function Pu(t, e, n) { var i = e.smooth, r = e.points; if (r && 2 <= r.length) { if (i) { var o = function (t, e, n, i) { var r, o, a = [], s = [], l = [], u = []; if (i) { for (var h = [1 / 0, 1 / 0], c = [-1 / 0, -1 / 0], p = 0, d = t.length; p < d; p++)ne(h, h, t[p]), ie(c, c, t[p]); ne(h, h, i[0]), ie(c, c, i[1]) } for (p = 0, d = t.length; p < d; p++) { var f = t[p]; if (n) r = t[p ? p - 1 : d - 1], o = t[(p + 1) % d]; else { if (0 === p || p === d - 1) { a.push(Gt(t[p])); continue } r = t[p - 1], o = t[p + 1] } Xt(s, o, r), Zt(s, s, e); var g = Kt(f, r), y = Kt(f, o), m = g + y, m = (0 !== m && (g /= m, y /= m), Zt(l, s, -g), Zt(u, s, y), Ut([], f, l)), g = Ut([], f, u); i && (ie(m, m, h), ne(m, m, c), ie(g, g, h), ne(g, g, c)), a.push(m), a.push(g) } return n && a.push(a.shift()), a }(r, i, n, e.smoothConstraint); t.moveTo(r[0][0], r[0][1]); for (var a = r.length, s = 0; s < (n ? a : a - 1); s++) { var l = o[2 * s], u = o[2 * s + 1], h = r[(s + 1) % a]; t.bezierCurveTo(l[0], l[1], u[0], u[1], h[0], h[1]) } } else { t.moveTo(r[0][0], r[0][1]); for (var s = 1, c = r.length; s < c; s++)t.lineTo(r[s][0], r[s][1]) } n && t.closePath() } } Au.prototype.type = "ring"; function Ou() { this.points = null, this.smooth = 0, this.smoothConstraint = null } u(Eu, Ru = as), Eu.prototype.getDefaultShape = function () { return new Ou }, Eu.prototype.buildPath = function (t, e) { Pu(t, e, !0) }; var Ru, Nu = Eu; function Eu(t) { return Ru.call(this, t) || this } Nu.prototype.type = "polygon"; function zu() { this.points = null, this.percent = 1, this.smooth = 0, this.smoothConstraint = null } u(Vu, Bu = as), Vu.prototype.getDefaultStyle = function () { return { stroke: "#000", fill: null } }, Vu.prototype.getDefaultShape = function () { return new zu }, Vu.prototype.buildPath = function (t, e) { Pu(t, e, !1) }; var Bu, Fu = Vu; function Vu(t) { return Bu.call(this, t) || this } Fu.prototype.type = "polyline"; function Hu() { this.x1 = 0, this.y1 = 0, this.x2 = 0, this.y2 = 0, this.percent = 1 } var Wu, Gu = {}, Uu = (u(Xu, Wu = as), Xu.prototype.getDefaultStyle = function () { return { stroke: "#000", fill: null } }, Xu.prototype.getDefaultShape = function () { return new Hu }, Xu.prototype.buildPath = function (t, e) { o = (this.subPixelOptimize ? (n = (o = ms(Gu, e, this.style)).x1, i = o.y1, r = o.x2, o) : (n = e.x1, i = e.y1, r = e.x2, e)).y2; var n, i, r, o, e = e.percent; 0 !== e && (t.moveTo(n, i), e < 1 && (r = n * (1 - e) + r * e, o = i * (1 - e) + o * e), t.lineTo(r, o)) }, Xu.prototype.pointAt = function (t) { var e = this.shape; return [e.x1 * (1 - t) + e.x2 * t, e.y1 * (1 - t) + e.y2 * t] }, Xu); function Xu(t) { return Wu.call(this, t) || this } Uu.prototype.type = "line"; function Yu() { this.x1 = 0, this.y1 = 0, this.x2 = 0, this.y2 = 0, this.cpx1 = 0, this.cpy1 = 0, this.percent = 1 } var qu = []; function Zu(t, e, n) { var i = t.cpx2, r = t.cpy2; return null != i || null != r ? [(n ? En : Nn)(t.x1, t.cpx1, t.cpx2, t.x2, e), (n ? En : Nn)(t.y1, t.cpy1, t.cpy2, t.y2, e)] : [(n ? Wn : Hn)(t.x1, t.cpx1, t.x2, e), (n ? Wn : Hn)(t.y1, t.cpy1, t.y2, e)] } u($u, ju = as), $u.prototype.getDefaultStyle = function () { return { stroke: "#000", fill: null } }, $u.prototype.getDefaultShape = function () { return new Yu }, $u.prototype.buildPath = function (t, e) { var n = e.x1, i = e.y1, r = e.x2, o = e.y2, a = e.cpx1, s = e.cpy1, l = e.cpx2, u = e.cpy2, e = e.percent; 0 !== e && (t.moveTo(n, i), null == l || null == u ? (e < 1 && (Un(n, a, r, e, qu), a = qu[1], r = qu[2], Un(i, s, o, e, qu), s = qu[1], o = qu[2]), t.quadraticCurveTo(a, s, r, o)) : (e < 1 && (Fn(n, a, l, r, e, qu), a = qu[1], l = qu[2], r = qu[3], Fn(i, s, u, o, e, qu), s = qu[1], u = qu[2], o = qu[3]), t.bezierCurveTo(a, s, l, u, r, o))) }, $u.prototype.pointAt = function (t) { return Zu(this.shape, t, !1) }, $u.prototype.tangentAt = function (t) { t = Zu(this.shape, t, !0); return jt(t, t) }; var ju, Ku = $u; function $u(t) { return ju.call(this, t) || this } Ku.prototype.type = "bezier-curve"; function Qu() { this.cx = 0, this.cy = 0, this.r = 0, this.startAngle = 0, this.endAngle = 2 * Math.PI, this.clockwise = !0 } u(eh, Ju = as), eh.prototype.getDefaultStyle = function () { return { stroke: "#000", fill: null } }, eh.prototype.getDefaultShape = function () { return new Qu }, eh.prototype.buildPath = function (t, e) { var n = e.cx, i = e.cy, r = Math.max(e.r, 0), o = e.startAngle, a = e.endAngle, e = e.clockwise, s = Math.cos(o), l = Math.sin(o); t.moveTo(s * r + n, l * r + i), t.arc(n, i, r, o, a, !e) }; var Ju, th = eh; function eh(t) { return Ju.call(this, t) || this } th.prototype.type = "arc"; u(rh, nh = as), rh.prototype._updatePathDirty = function () { for (var t = this.shape.paths, e = this.shapeChanged(), n = 0; n < t.length; n++)e = e || t[n].shapeChanged(); e && this.dirtyShape() }, rh.prototype.beforeBrush = function () { this._updatePathDirty(); for (var t = this.shape.paths || [], e = this.getGlobalScale(), n = 0; n < t.length; n++)t[n].path || t[n].createPathProxy(), t[n].path.setScale(e[0], e[1], t[n].segmentIgnoreThreshold) }, rh.prototype.buildPath = function (t, e) { for (var n = e.paths || [], i = 0; i < n.length; i++)n[i].buildPath(t, n[i].shape, !0) }, rh.prototype.afterBrush = function () { for (var t = this.shape.paths || [], e = 0; e < t.length; e++)t[e].pathUpdated() }, rh.prototype.getBoundingRect = function () { return this._updatePathDirty.call(this), as.prototype.getBoundingRect.call(this) }; var nh, ih = rh; function rh() { var t = null !== nh && nh.apply(this, arguments) || this; return t.type = "compound", t } ah.prototype.addColorStop = function (t, e) { this.colorStops.push({ offset: t, color: e }) }; var oh = ah; function ah(t) { this.colorStops = t || [] } u(uh, sh = oh); var sh, lh = uh; function uh(t, e, n, i, r, o) { r = sh.call(this, r) || this; return r.x = null == t ? 0 : t, r.y = null == e ? 0 : e, r.x2 = null == n ? 1 : n, r.y2 = null == i ? 0 : i, r.type = "linear", r.global = o || !1, r } u(ch, hh = oh); var hh, oh = ch; function ch(t, e, n, i, r) { i = hh.call(this, i) || this; return i.x = null == t ? .5 : t, i.y = null == e ? .5 : e, i.r = null == n ? .5 : n, i.type = "radial", i.global = r || !1, i } var ph = [0, 0], dh = [0, 0], fh = new M, gh = new M, yh = (mh.prototype.fromBoundingRect = function (t, e) { var n = this._corners, i = this._axes, r = t.x, o = t.y, a = r + t.width, t = o + t.height; if (n[0].set(r, o), n[1].set(a, o), n[2].set(a, t), n[3].set(r, t), e) for (var s = 0; s < 4; s++)n[s].transform(e); for (M.sub(i[0], n[1], n[0]), M.sub(i[1], n[3], n[0]), i[0].normalize(), i[1].normalize(), s = 0; s < 2; s++)this._origin[s] = i[s].dot(n[0]) }, mh.prototype.intersect = function (t, e) { var n = !0, i = !e; return fh.set(1 / 0, 1 / 0), gh.set(0, 0), !this._intersectCheckOneSide(this, t, fh, gh, i, 1) && (n = !1, i) || !this._intersectCheckOneSide(t, this, fh, gh, i, -1) && (n = !1, i) || i || M.copy(e, n ? fh : gh), n }, mh.prototype._intersectCheckOneSide = function (t, e, n, i, r, o) { for (var a = !0, s = 0; s < 2; s++) { var l = this._axes[s]; if (this._getProjMinMaxOnAxis(s, t._corners, ph), this._getProjMinMaxOnAxis(s, e._corners, dh), ph[1] < dh[0] || dh[1] < ph[0]) { if (a = !1, r) return a; var u = Math.abs(dh[0] - ph[1]), h = Math.abs(ph[0] - dh[1]); Math.min(u, h) > i.len() && (u < h ? M.scale(i, l, -u * o) : M.scale(i, l, h * o)) } else n && (u = Math.abs(dh[0] - ph[1]), h = Math.abs(ph[0] - dh[1]), Math.min(u, h) < n.len()) && (u < h ? M.scale(n, l, u * o) : M.scale(n, l, -h * o)) } return a }, mh.prototype._getProjMinMaxOnAxis = function (t, e, n) { for (var i = this._axes[t], r = this._origin, o = e[0].dot(i) + r[t], a = o, s = o, l = 1; l < e.length; l++)var u = e[l].dot(i) + r[t], a = Math.min(u, a), s = Math.max(u, s); n[0] = a, n[1] = s }, mh); function mh(t, e) { this._corners = [], this._axes = [], this._origin = [0, 0]; for (var n = 0; n < 4; n++)this._corners[n] = new M; for (n = 0; n < 2; n++)this._axes[n] = new M; t && this.fromBoundingRect(t, e) } var vh, _h = [], i = (u(xh, vh = i), xh.prototype.traverse = function (t, e) { t.call(e, this) }, xh.prototype.useStyle = function () { this.style = {} }, xh.prototype.getCursor = function () { return this._cursor }, xh.prototype.innerAfterBrush = function () { this._cursor = this._displayables.length }, xh.prototype.clearDisplaybles = function () { this._displayables = [], this._temporaryDisplayables = [], this._cursor = 0, this.markRedraw(), this.notClear = !1 }, xh.prototype.clearTemporalDisplayables = function () { this._temporaryDisplayables = [] }, xh.prototype.addDisplayable = function (t, e) { (e ? this._temporaryDisplayables : this._displayables).push(t), this.markRedraw() }, xh.prototype.addDisplayables = function (t, e) { e = e || !1; for (var n = 0; n < t.length; n++)this.addDisplayable(t[n], e) }, xh.prototype.getDisplayables = function () { return this._displayables }, xh.prototype.getTemporalDisplayables = function () { return this._temporaryDisplayables }, xh.prototype.eachPendingDisplayable = function (t) { for (var e = this._cursor; e < this._displayables.length; e++)t && t(this._displayables[e]); for (e = 0; e < this._temporaryDisplayables.length; e++)t && t(this._temporaryDisplayables[e]) }, xh.prototype.update = function () { this.updateTransform(); for (var t, e = this._cursor; e < this._displayables.length; e++)(t = this._displayables[e]).parent = this, t.update(), t.parent = null; for (e = 0; e < this._temporaryDisplayables.length; e++)(t = this._temporaryDisplayables[e]).parent = this, t.update(), t.parent = null }, xh.prototype.getBoundingRect = function () { if (!this._rect) { for (var t = new z(1 / 0, 1 / 0, -1 / 0, -1 / 0), e = 0; e < this._displayables.length; e++) { var n = this._displayables[e], i = n.getBoundingRect().clone(); n.needLocalTransform() && i.applyTransform(n.getLocalTransform(_h)), t.union(i) } this._rect = t } return this._rect }, xh.prototype.contain = function (t, e) { var n = this.transformCoordToLocal(t, e); if (this.getBoundingRect().contain(n[0], n[1])) for (var i = 0; i < this._displayables.length; i++)if (this._displayables[i].contain(t, e)) return !0; return !1 }, xh); function xh() { var t = null !== vh && vh.apply(this, arguments) || this; return t.notClear = !0, t.incremental = !0, t._displayables = [], t._temporaryDisplayables = [], t._cursor = 0, t } var wh = Mo(); function bh(t, e, n, i, r, o, a) { var s, l, u, h, c, p, d = !1, f = (S(r) ? (a = o, o = r, r = null) : R(r) && (o = r.cb, a = r.during, d = r.isFrom, l = r.removeOpt, r = r.dataIndex), "leave" === t), g = (f || e.stopAnimation("leave"), p = t, s = r, l = f ? l || {} : null, i = (g = i) && i.getAnimationDelayParams ? i.getAnimationDelayParams(e, r) : null, g && g.ecModel && (u = (u = g.ecModel.getUpdatePayload()) && u.animation), p = "update" === p, g && g.isAnimationEnabled() ? (c = h = r = void 0, c = l ? (r = N(l.duration, 200), h = N(l.easing, "cubicOut"), 0) : (r = g.getShallow(p ? "animationDurationUpdate" : "animationDuration"), h = g.getShallow(p ? "animationEasingUpdate" : "animationEasing"), g.getShallow(p ? "animationDelayUpdate" : "animationDelay")), S(c = u && (null != u.duration && (r = u.duration), null != u.easing && (h = u.easing), null != u.delay) ? u.delay : c) && (c = c(s, i)), { duration: (r = S(r) ? r(s) : r) || 0, delay: c, easing: h }) : null); g && 0 < g.duration ? (p = { duration: g.duration, delay: g.delay || 0, easing: g.easing, done: o, force: !!o || !!a, setToFinal: !f, scope: t, during: a }, d ? e.animateFrom(n, p) : e.animateTo(n, p)) : (e.stopAnimation(), d || e.attr(n), a && a(1), o && o()) } function Sh(t, e, n, i, r, o) { bh("update", t, e, n, i, r, o) } function Mh(t, e, n, i, r, o) { bh("enter", t, e, n, i, r, o) } function Th(t) { if (!t.__zr) return 1; for (var e = 0; e < t.animators.length; e++)if ("leave" === t.animators[e].scope) return 1 } function Ch(t, e, n, i, r, o) { Th(t) || bh("leave", t, e, n, i, r, o) } var kh = Math.max, Dh = Math.min, Ih = {}; var Ah = function (t, e) { var n, i = nu(t, e); return u(r, n = Jl), r; function r(t) { t = n.call(this, t) || this; return t.applyTransform = i.applyTransform, t.buildPath = i.buildPath, t } }; function Lh(t, e) { Ih[t] = e } function Ph(t, e, n, i) { t = new Jl(nu(t, e)); return n && ("center" === i && (n = Rh(n, t.getBoundingRect())), Eh(t, n)), t } function Oh(t, e, n) { var i = new fs({ style: { image: t, x: e.x, y: e.y, width: e.width, height: e.height }, onload: function (t) { "center" === n && (t = { width: t.width, height: t.height }, i.setStyle(Rh(e, t))) } }); return i } function Rh(t, e) { var e = e.width / e.height, n = t.height * e, e = n <= t.width ? t.height : (n = t.width) / e; return { x: t.x + t.width / 2 - n / 2, y: t.y + t.height / 2 - e / 2, width: n, height: e } } function Nh(t, e) { for (var n = [], i = t.length, r = 0; r < i; r++) { var o = t[r]; n.push(o.getUpdatedPathProxy(!0)) } return (e = new as(e)).createPathProxy(), e.buildPath = function (t) { var e; eu(t) && (t.appendPath(n), e = t.getContext()) && t.rebuildPath(e, 1) }, e } function Eh(t, e) { t.applyTransform && (e = t.getBoundingRect().calculateTransform(e), t.applyTransform(e)) } function zh(t, e) { ms(t, t, { lineWidth: e }) } function Bh(t) { return !t.isGroup } function Fh(t, e) { var n; (n = t.isGroup ? e(t) : n) || t.traverse(e) } function Vh(t, e) { if (t) if (V(t)) for (var n = 0; n < t.length; n++)Fh(t[n], e); else Fh(t, e) } Lh("circle", ou), Lh("ellipse", uu), Lh("sector", Cu), Lh("ring", Au), Lh("polygon", Nu), Lh("polyline", Fu), Lh("rect", bs), Lh("line", Uu), Lh("bezierCurve", Ku), Lh("arc", th); var Hh = {}; function Wh(t, e) { for (var n = 0; n < qs.length; n++) { var i = qs[n], r = e[i], i = t.ensureState(i); i.style = i.style || {}, i.style.text = r } var o = t.currentStates.slice(); t.clearStates(!0), t.setStyle({ text: e.normal }), t.useStates(o, !0) } function Gh(t, e, n) { for (var i, r = t.labelFetcher, o = t.labelDataIndex, a = t.labelDimIndex, s = e.normal, l = { normal: i = null == (i = r ? r.getFormattedLabel(o, "normal", null, a, s && s.get("formatter"), null != n ? { interpolatedValue: n } : null) : i) ? S(t.defaultText) ? t.defaultText(o, t, n) : t.defaultText : i }, u = 0; u < qs.length; u++) { var h = qs[u], c = e[h]; l[h] = N(r ? r.getFormattedLabel(o, h, null, a, c && c.get("formatter")) : null, i) } return l } function Uh(t, e, n, i) { n = n || Hh; for (var r = t instanceof ks, o = !1, a = 0; a < Zs.length; a++)if ((p = e[Zs[a]]) && p.getShallow("show")) { o = !0; break } var s = r ? t : t.getTextContent(); if (o) { r || (s || (s = new ks, t.setTextContent(s)), t.stateProxy && (s.stateProxy = t.stateProxy)); var l = Gh(n, e), u = e.normal, h = !!u.getShallow("show"), c = Yh(u, i && i.normal, n, !1, !r); for (c.text = l.normal, r || t.setTextConfig(qh(u, n, !1)), a = 0; a < qs.length; a++) { var p, d, f, g = qs[a]; (p = e[g]) && (d = s.ensureState(g), (f = !!N(p.getShallow("show"), h)) != h && (d.ignore = !f), d.style = Yh(p, i && i[g], n, !0, !r), d.style.text = l[g], r || (t.ensureState(g).textConfig = qh(p, n, !0))) } s.silent = !!u.getShallow("silent"), null != s.style.x && (c.x = s.style.x), null != s.style.y && (c.y = s.style.y), s.ignore = !h, s.useStyle(c), s.dirty(), n.enableTextSetter && (Qh(s).setLabelText = function (t) { t = Gh(n, e, t); Wh(s, t) }) } else s && (s.ignore = !0); t.dirty() } function Xh(t, e) { for (var n = { normal: t.getModel(e = e || "label") }, i = 0; i < qs.length; i++) { var r = qs[i]; n[r] = t.getModel([r, e]) } return n } function Yh(t, e, n, i, r) { var o, a = {}, s = a, l = t, u = n, h = i, c = r; u = u || Hh; var p, t = l.ecModel, d = t && t.option.textStyle, f = function (t) { for (var e; t && t !== t.ecModel;) { var n = (t.option || Hh).rich; if (n) { e = e || {}; for (var i = D(n), r = 0; r < i.length; r++)e[i[r]] = 1 } t = t.parentModel } return e }(l); if (f) for (var g in p = {}, f) f.hasOwnProperty(g) && (o = l.getModel(["rich", g]), $h(p[g] = {}, o, d, u, h, c, !1, !0)); return p && (s.rich = p), (t = l.get("overflow")) && (s.overflow = t), null != (t = l.get("minMargin")) && (s.margin = t), $h(s, l, d, u, h, c, !0, !1), e && P(a, e), a } function qh(t, e, n) { e = e || {}; var i = {}, r = t.getShallow("rotate"), o = N(t.getShallow("distance"), n ? null : 5), a = t.getShallow("offset"); return null != (n = "outside" === (n = t.getShallow("position") || (n ? null : "inside")) ? e.defaultOutsidePosition || "top" : n) && (i.position = n), null != a && (i.offset = a), null != r && (r *= Math.PI / 180, i.rotation = r), null != o && (i.distance = o), i.outsideFill = "inherit" === t.get("color") ? e.inheritColor || null : "auto", i } var Zh = ["fontStyle", "fontWeight", "fontSize", "fontFamily", "textShadowColor", "textShadowBlur", "textShadowOffsetX", "textShadowOffsetY"], jh = ["align", "lineHeight", "width", "height", "tag", "verticalAlign", "ellipsis"], Kh = ["padding", "borderWidth", "borderRadius", "borderDashOffset", "backgroundColor", "borderColor", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY"]; function $h(t, e, n, i, r, o, a, s) { n = !r && n || Hh; var l = i && i.inheritColor, u = e.getShallow("color"), h = e.getShallow("textBorderColor"), c = N(e.getShallow("opacity"), n.opacity), u = ("inherit" !== u && "auto" !== u || (u = l || null), "inherit" !== h && "auto" !== h || (h = l || null), o || (u = u || n.color, h = h || n.textBorderColor), null != u && (t.fill = u), null != h && (t.stroke = h), N(e.getShallow("textBorderWidth"), n.textBorderWidth)), h = (null != u && (t.lineWidth = u), N(e.getShallow("textBorderType"), n.textBorderType)), u = (null != h && (t.lineDash = h), N(e.getShallow("textBorderDashOffset"), n.textBorderDashOffset)); null != u && (t.lineDashOffset = u), null != (c = r || null != c || s ? c : i && i.defaultOpacity) && (t.opacity = c), r || o || null == t.fill && i.inheritColor && (t.fill = i.inheritColor); for (var p = 0; p < Zh.length; p++) { var d = Zh[p]; null != (f = N(e.getShallow(d), n[d])) && (t[d] = f) } for (p = 0; p < jh.length; p++)d = jh[p], null != (f = e.getShallow(d)) && (t[d] = f); if (null == t.verticalAlign && null != (h = e.getShallow("baseline")) && (t.verticalAlign = h), !a || !i.disableBox) { for (p = 0; p < Kh.length; p++) { var f, d = Kh[p]; null != (f = e.getShallow(d)) && (t[d] = f) } u = e.getShallow("borderType"); null != u && (t.borderDash = u), "auto" !== t.backgroundColor && "inherit" !== t.backgroundColor || !l || (t.backgroundColor = l), "auto" !== t.borderColor && "inherit" !== t.borderColor || !l || (t.borderColor = l) } } var Qh = Mo(); var Jh = ["textStyle", "color"], tc = ["fontStyle", "fontWeight", "fontSize", "fontFamily", "padding", "lineHeight", "rich", "width", "height", "overflow"], ec = new ks, nc = (ic.prototype.getTextColor = function (t) { var e = this.ecModel; return this.getShallow("color") || (!t && e ? e.get(Jh) : null) }, ic.prototype.getFont = function () { return t = { fontStyle: this.getShallow("fontStyle"), fontWeight: this.getShallow("fontWeight"), fontSize: this.getShallow("fontSize"), fontFamily: this.getShallow("fontFamily") }, e = (e = this.ecModel) && e.getModel("textStyle"), Ct([t.fontStyle || e && e.getShallow("fontStyle") || "", t.fontWeight || e && e.getShallow("fontWeight") || "", (t.fontSize || e && e.getShallow("fontSize") || 12) + "px", t.fontFamily || e && e.getShallow("fontFamily") || "sans-serif"].join(" ")); var t, e }, ic.prototype.getTextRect = function (t) { for (var e = { text: t, verticalAlign: this.getShallow("verticalAlign") || this.getShallow("baseline") }, n = 0; n < tc.length; n++)e[tc[n]] = this.getShallow(tc[n]); return ec.useStyle(e), ec.update(), ec.getBoundingRect() }, ic); function ic() { } var rc = [["lineWidth", "width"], ["stroke", "color"], ["opacity"], ["shadowBlur"], ["shadowOffsetX"], ["shadowOffsetY"], ["shadowColor"], ["lineDash", "type"], ["lineDashOffset", "dashOffset"], ["lineCap", "cap"], ["lineJoin", "join"], ["miterLimit"]], oc = Wo(rc), ac = (sc.prototype.getLineStyle = function (t) { return oc(this, t) }, sc); function sc() { } var lc = [["fill", "color"], ["stroke", "borderColor"], ["lineWidth", "borderWidth"], ["opacity"], ["shadowBlur"], ["shadowOffsetX"], ["shadowOffsetY"], ["shadowColor"], ["lineDash", "borderType"], ["lineDashOffset", "borderDashOffset"], ["lineCap", "borderCap"], ["lineJoin", "borderJoin"], ["miterLimit", "borderMiterLimit"]], uc = Wo(lc), hc = (cc.prototype.getItemStyle = function (t, e) { return uc(this, t, e) }, cc); function cc() { } fc.prototype.init = function (t, e, n) { for (var i = 3; i < arguments.length; i++)i - 3, 0 }, fc.prototype.mergeOption = function (t, e) { d(this.option, t, !0) }, fc.prototype.get = function (t, e) { return null == t ? this.option : this._doGet(this.parsePath(t), !e && this.parentModel) }, fc.prototype.getShallow = function (t, e) { var n = this.option, n = null == n ? n : n[t]; return null != n || e || (e = this.parentModel) && (n = e.getShallow(t)), n }, fc.prototype.getModel = function (t, e) { var n = null != t, t = n ? this.parsePath(t) : null; return new fc(n ? this._doGet(t) : this.option, e = e || this.parentModel && this.parentModel.getModel(this.resolveParentPath(t)), this.ecModel) }, fc.prototype.isEmpty = function () { return null == this.option }, fc.prototype.restoreData = function () { }, fc.prototype.clone = function () { return new this.constructor(y(this.option)) }, fc.prototype.parsePath = function (t) { return "string" == typeof t ? t.split(".") : t }, fc.prototype.resolveParentPath = function (t) { return t }, fc.prototype.isAnimationEnabled = function () { if (!p.node && this.option) return null != this.option.animation ? !!this.option.animation : this.parentModel ? this.parentModel.isAnimationEnabled() : void 0 }, fc.prototype._doGet = function (t, e) { var n = this.option; if (t) { for (var i = 0; i < t.length && (!t[i] || null != (n = n && "object" == typeof n ? n[t[i]] : null)); i++); null == n && e && (n = e._doGet(this.resolveParentPath(t), e.parentModel)) } return n }; var pc, dc = fc; function fc(t, e, n) { this.parentModel = e, this.ecModel = n, this.option = t } Eo(dc), Ic = dc, pc = ["__\0is_clz", Bo++].join("_"), Ic.prototype[pc] = !0, Ic.isInstance = function (t) { return !(!t || !t[pc]) }, at(dc, ac), at(dc, hc), at(dc, Uo), at(dc, nc); var gc = Math.round(10 * Math.random()); function yc(t) { return [t || "", gc++].join("_") } var mc = "ZH", vc = "EN", _c = vc, xc = {}, wc = {}, bc = p.domSupported && -1 < (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase().indexOf(mc) ? mc : _c; function Sc(t, e) { t = t.toUpperCase(), wc[t] = new dc(e), xc[t] = e } Sc(vc, { time: { month: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], monthAbbr: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], dayOfWeek: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], dayOfWeekAbbr: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] }, legend: { selector: { all: "All", inverse: "Inv" } }, toolbox: { brush: { title: { rect: "Box Select", polygon: "Lasso Select", lineX: "Horizontally Select", lineY: "Vertically Select", keep: "Keep Selections", clear: "Clear Selections" } }, dataView: { title: "Data View", lang: ["Data View", "Close", "Refresh"] }, dataZoom: { title: { zoom: "Zoom", back: "Zoom Reset" } }, magicType: { title: { line: "Switch to Line Chart", bar: "Switch to Bar Chart", stack: "Stack", tiled: "Tile" } }, restore: { title: "Restore" }, saveAsImage: { title: "Save as Image", lang: ["Right Click to Save Image"] } }, series: { typeNames: { pie: "Pie chart", bar: "Bar chart", line: "Line chart", scatter: "Scatter plot", effectScatter: "Ripple scatter plot", radar: "Radar chart", tree: "Tree", treemap: "Treemap", boxplot: "Boxplot", candlestick: "Candlestick", k: "K line chart", heatmap: "Heat map", map: "Map", parallel: "Parallel coordinate map", lines: "Line graph", graph: "Relationship graph", sankey: "Sankey diagram", funnel: "Funnel chart", gauge: "Gauge", pictorialBar: "Pictorial bar", themeRiver: "Theme River Map", sunburst: "Sunburst" } }, aria: { general: { withTitle: 'This is a chart about "{title}"', withoutTitle: "This is a chart" }, series: { single: { prefix: "", withName: " with type {seriesType} named {seriesName}.", withoutName: " with type {seriesType}." }, multiple: { prefix: ". It consists of {seriesCount} series count.", withName: " The {seriesId} series is a {seriesType} representing {seriesName}.", withoutName: " The {seriesId} series is a {seriesType}.", separator: { middle: "", end: "" } } }, data: { allData: "The data is as follows: ", partialData: "The first {displayCnt} items are: ", withName: "the data for {name} is {value}", withoutName: "{value}", separator: { middle: ", ", end: ". " } } } }), Sc(mc, { time: { month: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], monthAbbr: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], dayOfWeek: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], dayOfWeekAbbr: ["日", "一", "二", "三", "四", "五", "六"] }, legend: { selector: { all: "全选", inverse: "反选" } }, toolbox: { brush: { title: { rect: "矩形选择", polygon: "圈选", lineX: "横向选择", lineY: "纵向选择", keep: "保持选择", clear: "清除选择" } }, dataView: { title: "数据视图", lang: ["数据视图", "关闭", "刷新"] }, dataZoom: { title: { zoom: "区域缩放", back: "区域缩放还原" } }, magicType: { title: { line: "切换为折线图", bar: "切换为柱状图", stack: "切换为堆叠", tiled: "切换为平铺" } }, restore: { title: "还原" }, saveAsImage: { title: "保存为图片", lang: ["右键另存为图片"] } }, series: { typeNames: { pie: "饼图", bar: "柱状图", line: "折线图", scatter: "散点图", effectScatter: "涟漪散点图", radar: "雷达图", tree: "树图", treemap: "矩形树图", boxplot: "箱型图", candlestick: "K线图", k: "K线图", heatmap: "热力图", map: "地图", parallel: "平行坐标图", lines: "线图", graph: "关系图", sankey: "桑基图", funnel: "漏斗图", gauge: "仪表盘图", pictorialBar: "象形柱图", themeRiver: "主题河流图", sunburst: "旭日图" } }, aria: { general: { withTitle: "这是一个关于“{title}”的图表。", withoutTitle: "这是一个图表，" }, series: { single: { prefix: "", withName: "图表类型是{seriesType}，表示{seriesName}。", withoutName: "图表类型是{seriesType}。" }, multiple: { prefix: "它由{seriesCount}个图表系列组成。", withName: "第{seriesId}个系列是一个表示{seriesName}的{seriesType}，", withoutName: "第{seriesId}个系列是一个{seriesType}，", separator: { middle: "；", end: "。" } } }, data: { allData: "其数据是——", partialData: "其中，前{displayCnt}项是——", withName: "{name}的数据是{value}", withoutName: "{value}", separator: { middle: "，", end: "" } } } }); var Mc = 1e3, Tc = 60 * Mc, Cc = 60 * Tc, kc = 24 * Cc, Bo = 365 * kc, Dc = { year: "{yyyy}", month: "{MMM}", day: "{d}", hour: "{HH}:{mm}", minute: "{HH}:{mm}", second: "{HH}:{mm}:{ss}", millisecond: "{HH}:{mm}:{ss} {SSS}", none: "{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}" }, Ic = "{yyyy}-{MM}-{dd}", Ac = { year: "{yyyy}", month: "{yyyy}-{MM}", day: Ic, hour: Ic + " " + Dc.hour, minute: Ic + " " + Dc.minute, second: Ic + " " + Dc.second, millisecond: Dc.none }, Lc = ["year", "month", "day", "hour", "minute", "second", "millisecond"], Pc = ["year", "half-year", "quarter", "month", "week", "half-week", "day", "half-day", "quarter-day", "hour", "minute", "second", "millisecond"]; function Oc(t, e) { return "0000".substr(0, e - (t += "").length) + t } function Rc(t) { switch (t) { case "half-year": case "quarter": return "month"; case "week": case "half-week": return "day"; case "half-day": case "quarter-day": return "hour"; default: return t } } function Nc(t, e, n, i) { var t = eo(t), r = t[Bc(n)](), o = t[Fc(n)]() + 1, a = Math.floor((o - 1) / 3) + 1, s = t[Vc(n)](), l = t["get" + (n ? "UTC" : "") + "Day"](), u = t[Hc(n)](), h = (u - 1) % 12 + 1, c = t[Wc(n)](), p = t[Gc(n)](), t = t[Uc(n)](), n = (i instanceof dc ? i : wc[i || bc] || wc[_c]).getModel("time"), i = n.get("month"), d = n.get("monthAbbr"), f = n.get("dayOfWeek"), n = n.get("dayOfWeekAbbr"); return (e || "").replace(/{yyyy}/g, r + "").replace(/{yy}/g, Oc(r % 100 + "", 2)).replace(/{Q}/g, a + "").replace(/{MMMM}/g, i[o - 1]).replace(/{MMM}/g, d[o - 1]).replace(/{MM}/g, Oc(o, 2)).replace(/{M}/g, o + "").replace(/{dd}/g, Oc(s, 2)).replace(/{d}/g, s + "").replace(/{eeee}/g, f[l]).replace(/{ee}/g, n[l]).replace(/{e}/g, l + "").replace(/{HH}/g, Oc(u, 2)).replace(/{H}/g, u + "").replace(/{hh}/g, Oc(h + "", 2)).replace(/{h}/g, h + "").replace(/{mm}/g, Oc(c, 2)).replace(/{m}/g, c + "").replace(/{ss}/g, Oc(p, 2)).replace(/{s}/g, p + "").replace(/{SSS}/g, Oc(t, 3)).replace(/{S}/g, t + "") } function Ec(t, e) { var t = eo(t), n = t[Fc(e)]() + 1, i = t[Vc(e)](), r = t[Hc(e)](), o = t[Wc(e)](), a = t[Gc(e)](), t = 0 === t[Uc(e)](), e = t && 0 === a, a = e && 0 === o, o = a && 0 === r, r = o && 1 === i; return r && 1 === n ? "year" : r ? "month" : o ? "day" : a ? "hour" : e ? "minute" : t ? "second" : "millisecond" } function zc(t, e, n) { var i = dt(t) ? eo(t) : t; switch (e = e || Ec(t, n)) { case "year": return i[Bc(n)](); case "half-year": return 6 <= i[Fc(n)]() ? 1 : 0; case "quarter": return Math.floor((i[Fc(n)]() + 1) / 4); case "month": return i[Fc(n)](); case "day": return i[Vc(n)](); case "half-day": return i[Hc(n)]() / 24; case "hour": return i[Hc(n)](); case "minute": return i[Wc(n)](); case "second": return i[Gc(n)](); case "millisecond": return i[Uc(n)]() } } function Bc(t) { return t ? "getUTCFullYear" : "getFullYear" } function Fc(t) { return t ? "getUTCMonth" : "getMonth" } function Vc(t) { return t ? "getUTCDate" : "getDate" } function Hc(t) { return t ? "getUTCHours" : "getHours" } function Wc(t) { return t ? "getUTCMinutes" : "getMinutes" } function Gc(t) { return t ? "getUTCSeconds" : "getSeconds" } function Uc(t) { return t ? "getUTCMilliseconds" : "getMilliseconds" } function Xc(t) { return t ? "setUTCMonth" : "setMonth" } function Yc(t) { return t ? "setUTCDate" : "setDate" } function qc(t) { return t ? "setUTCHours" : "setHours" } function Zc(t) { return t ? "setUTCMinutes" : "setMinutes" } function jc(t) { return t ? "setUTCSeconds" : "setSeconds" } function Kc(t) { return t ? "setUTCMilliseconds" : "setMilliseconds" } function $c(t) { var e; return ao(t) ? (e = (t + "").split("."))[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, "$1,") + (1 < e.length ? "." + e[1] : "") : H(t) ? t : "-" } function Qc(t, e) { return "{" + t + (null == e ? "" : e) + "}" } var Jc = Mt, tp = ["a", "b", "c", "d", "e", "f", "g"]; function ep(t, e, n) { var i = (e = V(e) ? e : [e]).length; if (!i) return ""; for (var r = e[0].$vars || [], o = 0; o < r.length; o++) { var a = tp[o]; t = t.replace(Qc(a), Qc(a, 0)) } for (var s = 0; s < i; s++)for (var l = 0; l < r.length; l++) { var u = e[s][r[l]]; t = t.replace(Qc(tp[l], s), n ? ve(u) : u) } return t } function np(t, e) { return e = e || "transparent", H(t) ? t : R(t) && t.colorStops && (t.colorStops[0] || {}).color || e } var ip = O, rp = ["left", "right", "top", "bottom", "width", "height"], op = [["width", "left", "right"], ["height", "top", "bottom"]]; function ap(a, s, l, u, h) { var c = 0, p = 0, d = (null == u && (u = 1 / 0), null == h && (h = 1 / 0), 0); s.eachChild(function (t, e) { var n, i, r, o = t.getBoundingRect(), e = s.childAt(e + 1), e = e && e.getBoundingRect(); d = "horizontal" === a ? (r = o.width + (e ? -e.x + o.x : 0), (n = c + r) > u || t.newline ? (c = 0, n = r, p += d + l, o.height) : Math.max(d, o.height)) : (r = o.height + (e ? -e.y + o.y : 0), (i = p + r) > h || t.newline ? (c += d + l, p = 0, i = r, o.width) : Math.max(d, o.width)), t.newline || (t.x = c, t.y = p, t.markRedraw(), "horizontal" === a ? c = n + l : p = i + l) }) } function sp(t, e, n) { n = Jc(n || 0); var i = e.width, r = e.height, o = qr(t.left, i), a = qr(t.top, r), e = qr(t.right, i), s = qr(t.bottom, r), l = qr(t.width, i), u = qr(t.height, r), h = n[2] + n[0], c = n[1] + n[3], p = t.aspect; switch (isNaN(l) && (l = i - e - c - o), isNaN(u) && (u = r - s - h - a), null != p && (isNaN(l) && isNaN(u) && (i / r < p ? l = .8 * i : u = .8 * r), isNaN(l) && (l = p * u), isNaN(u)) && (u = l / p), isNaN(o) && (o = i - e - l - c), isNaN(a) && (a = r - s - u - h), t.left || t.right) { case "center": o = i / 2 - l / 2 - n[3]; break; case "right": o = i - l - c }switch (t.top || t.bottom) { case "middle": case "center": a = r / 2 - u / 2 - n[0]; break; case "bottom": a = r - u - h }o = o || 0, a = a || 0, isNaN(l) && (l = i - c - o - (e || 0)), isNaN(u) && (u = r - h - a - (s || 0)); p = new z(o + n[3], a + n[0], l, u); return p.margin = n, p } function lp(t) { t = t.layoutMode || t.constructor.layoutMode; return R(t) ? t : t ? { type: t } : null } function up(l, u, t) { var h = t && t.ignoreSize, t = (V(h) || (h = [h, h]), n(op[0], 0)), e = n(op[1], 1); function n(t, e) { var n = {}, i = 0, r = {}, o = 0; if (ip(t, function (t) { r[t] = l[t] }), ip(t, function (t) { c(u, t) && (n[t] = r[t] = u[t]), p(n, t) && i++, p(r, t) && o++ }), h[e]) p(u, t[1]) ? r[t[2]] = null : p(u, t[2]) && (r[t[1]] = null); else if (2 !== o && i) { if (!(2 <= i)) for (var a = 0; a < t.length; a++) { var s = t[a]; if (!c(n, s) && c(l, s)) { n[s] = l[s]; break } } return n } return r } function c(t, e) { return t.hasOwnProperty(e) } function p(t, e) { return null != t[e] && "auto" !== t[e] } function i(t, e, n) { ip(t, function (t) { e[t] = n[t] }) } i(op[0], l, t), i(op[1], l, e) } function hp(t) { return e = {}, (n = t) && e && ip(rp, function (t) { n.hasOwnProperty(t) && (e[t] = n[t]) }), e; var e, n } ct(ap, "vertical"), ct(ap, "horizontal"); var cp, pp, dp, fp, gp = Mo(), g = (u(yp, cp = dc), yp.prototype.init = function (t, e, n) { this.mergeDefaultAndTheme(t, n) }, yp.prototype.mergeDefaultAndTheme = function (t, e) { var n = lp(this), i = n ? hp(t) : {}; d(t, e.getTheme().get(this.mainType)), d(t, this.getDefaultOption()), n && up(t, i, n) }, yp.prototype.mergeOption = function (t, e) { d(this.option, t, !0); var n = lp(this); n && up(this.option, t, n) }, yp.prototype.optionUpdated = function (t, e) { }, yp.prototype.getDefaultOption = function () { var t = this.constructor; if (!(e = t) || !e[Ro]) return t.defaultOption; var e = gp(this); if (!e.defaultOption) { for (var n = [], i = t; i;) { var r = i.prototype.defaultOption; r && n.push(r), i = i.superClass } for (var o = {}, a = n.length - 1; 0 <= a; a--)o = d(o, n[a], !0); e.defaultOption = o } return e.defaultOption }, yp.prototype.getReferringComponents = function (t, e) { var n = t + "Id"; return Io(this.ecModel, t, { index: this.get(t + "Index", !0), id: this.get(n, !0) }, e) }, yp.prototype.getBoxLayoutParams = function () { return { left: this.get("left"), top: this.get("top"), right: this.get("right"), bottom: this.get("bottom"), width: this.get("width"), height: this.get("height") } }, yp.prototype.getZLevelKey = function () { return "" }, yp.prototype.setZLevel = function (t) { this.option.zlevel = t }, yp.protoInitialize = ((ac = yp.prototype).type = "component", ac.id = "", ac.name = "", ac.mainType = "", ac.subType = "", void (ac.componentIndex = 0)), yp); function yp(t, e, n) { t = cp.call(this, t, e, n) || this; return t.uid = yc("ec_cpt_model"), t } function mp(t, e) { return t[e] || (t[e] = { predecessor: [], successor: [] }), t[e] } zo(g, dc), Ho(g), fp = {}, (dp = g).registerSubTypeDefaulter = function (t, e) { t = No(t); fp[t.main] = e }, dp.determineSubType = function (t, e) { var n, i = e.type; return i || (n = No(t).main, dp.hasSubTypes(t) && fp[n] && (i = fp[n](e))), i }, pp = function (t) { var e = []; return O(g.getClassesByMainType(t), function (t) { e = e.concat(t.dependencies || t.prototype.dependencies || []) }), e = F(e, function (t) { return No(t).main }), "dataset" !== t && k(e, "dataset") <= 0 && e.unshift("dataset"), e }, g.topologicalTravel = function (t, e, n, i) { if (t.length) { c = {}, p = [], O(h = e, function (n) { var e, i, r = mp(c, n), t = (t = r.originalDeps = pp(n), e = h, i = [], O(t, function (t) { 0 <= k(e, t) && i.push(t) }), i); r.entryCount = t.length, 0 === r.entryCount && p.push(n), O(t, function (t) { k(r.predecessor, t) < 0 && r.predecessor.push(t); var e = mp(c, t); k(e.successor, t) < 0 && e.successor.push(n) }) }); var e = { graph: c, noEntryList: p }, r = e.graph, o = e.noEntryList, a = {}; for (O(t, function (t) { a[t] = !0 }); o.length;) { var s = o.pop(), l = r[s], u = !!a[s]; u && (n.call(i, s, l.originalDeps.slice()), delete a[s]), O(l.successor, u ? f : d) } O(a, function () { throw new Error("") }) } var h, c, p; function d(t) { r[t].entryCount--, 0 === r[t].entryCount && o.push(t) } function f(t) { a[t] = !0, d(t) } }; var hc = "", Uo = ("undefined" != typeof navigator && (hc = navigator.platform || ""), "rgba(0, 0, 0, 0.2)"), vp = { darkMode: "auto", colorBy: "series", color: ["#5470c6", "#91cc75", "#fac858", "#ee6666", "#73c0de", "#3ba272", "#fc8452", "#9a60b4", "#ea7ccc"], gradientColor: ["#f6efa6", "#d88273", "#bf444c"], aria: { decal: { decals: [{ color: Uo, dashArrayX: [1, 0], dashArrayY: [2, 5], symbolSize: 1, rotation: Math.PI / 6 }, { color: Uo, symbol: "circle", dashArrayX: [[8, 8], [0, 8, 8, 0]], dashArrayY: [6, 0], symbolSize: .8 }, { color: Uo, dashArrayX: [1, 0], dashArrayY: [4, 3], rotation: -Math.PI / 4 }, { color: Uo, dashArrayX: [[6, 6], [0, 6, 6, 0]], dashArrayY: [6, 0] }, { color: Uo, dashArrayX: [[1, 0], [1, 6]], dashArrayY: [1, 0, 6, 0], rotation: Math.PI / 4 }, { color: Uo, symbol: "triangle", dashArrayX: [[9, 9], [0, 9, 9, 0]], dashArrayY: [7, 2], symbolSize: .75 }] } }, textStyle: { fontFamily: hc.match(/^Win/) ? "Microsoft YaHei" : "sans-serif", fontSize: 12, fontStyle: "normal", fontWeight: "normal" }, blendMode: null, stateAnimation: { duration: 300, easing: "cubicOut" }, animation: "auto", animationDuration: 1e3, animationDurationUpdate: 500, animationEasing: "cubicInOut", animationEasingUpdate: "cubicInOut", animationThreshold: 2e3, progressiveThreshold: 3e3, progressive: 400, hoverLayerThreshold: 3e3, useUTC: !1 }, _p = E(["tooltip", "label", "itemName", "itemId", "itemGroupId", "seriesName"]), xp = "original", wp = "arrayRows", bp = "objectRows", Sp = "keyedColumns", Mp = "typedArray", Tp = "unknown", Cp = "column", kp = "row", Dp = { Must: 1, Might: 2, Not: 3 }, Ip = Mo(); function Ap(n, t, e) { var r, i, o, a, s, l = {}, u = Lp(t); return u && n && (o = [], a = [], t = t.ecModel, t = Ip(t).datasetMap, u = u.uid + "_" + e.seriesLayoutBy, O(n = n.slice(), function (t, e) { t = R(t) ? t : n[e] = { name: t }; "ordinal" === t.type && null == r && (r = e, i = c(t)), l[t.name] = [] }), s = t.get(u) || t.set(u, { categoryWayDim: i, valueWayDim: 0 }), O(n, function (t, e) { var n, i = t.name, t = c(t); null == r ? (n = s.valueWayDim, h(l[i], n, t), h(a, n, t), s.valueWayDim += t) : r === e ? (h(l[i], 0, t), h(o, 0, t)) : (n = s.categoryWayDim, h(l[i], n, t), h(a, n, t), s.categoryWayDim += t) }), o.length && (l.itemName = o), a.length) && (l.seriesName = a), l; function h(t, e, n) { for (var i = 0; i < n; i++)t.push(e + i) } function c(t) { t = t.dimsDef; return t ? t.length : 1 } } function Lp(t) { if (!t.get("data", !0)) return Io(t.ecModel, "dataset", { index: t.get("datasetIndex", !0), id: t.get("datasetId", !0) }, Do).models[0] } function Pp(t, e) { var n, i, r, o = t.data, a = t.sourceFormat, s = t.seriesLayoutBy, l = t.dimensionsDefine, u = t.startIndex, h = e; if (!gt(o)) { if (l && (R(l = l[h]) ? (i = l.name, r = l.type) : H(l) && (i = l)), null != r) return "ordinal" === r ? Dp.Must : Dp.Not; if (a === wp) { var c = o; if (s === kp) { for (var p = c[h], d = 0; d < (p || []).length && d < 5; d++)if (null != (n = _(p[u + d]))) return n } else for (d = 0; d < c.length && d < 5; d++) { var f = c[u + d]; if (f && null != (n = _(f[h]))) return n } } else if (a === bp) { var g = o; if (!i) return Dp.Not; for (d = 0; d < g.length && d < 5; d++)if ((m = g[d]) && null != (n = _(m[i]))) return n } else if (a === Sp) { l = o; if (!i) return Dp.Not; if (!(p = l[i]) || gt(p)) return Dp.Not; for (d = 0; d < p.length && d < 5; d++)if (null != (n = _(p[d]))) return n } else if (a === xp) { var y = o; for (d = 0; d < y.length && d < 5; d++) { var m = y[d], v = go(m); if (!V(v)) return Dp.Not; if (null != (n = _(v[h]))) return n } } } return Dp.Not; function _(t) { var e = H(t); return null != t && isFinite(t) && "" !== t ? e ? Dp.Might : Dp.Not : e && "-" !== t ? Dp.Must : void 0 } } var Op = E(); var Rp = Mo(), Np = (Mo(), Ep.prototype.getColorFromPalette = function (t, e, n) { var i = co(this.get("color", !0)), r = this.get("colorLayer", !0), o = this, a = Rp; return a = a(e = e || o), o = a.paletteIdx || 0, (e = a.paletteNameMap = a.paletteNameMap || {}).hasOwnProperty(t) ? e[t] : (r = (r = null != n && r ? function (t, e) { for (var n = t.length, i = 0; i < n; i++)if (t[i].length > e) return t[i]; return t[n - 1] }(r, n) : i) || i) && r.length ? (n = r[o], t && (e[t] = n), a.paletteIdx = (o + 1) % r.length, n) : void 0 }, Ep.prototype.clearColorPalette = function () { var t, e; (e = Rp)(t = this).paletteIdx = 0, e(t).paletteNameMap = {} }, Ep); function Ep() { } var zp, Bp, Fp, Vp, Hp = "\0_ec_inner", Wp = (u(h, Vp = dc), h.prototype.init = function (t, e, n, i, r, o) { i = i || {}, this.option = null, this._theme = new dc(i), this._locale = new dc(r), this._optionManager = o }, h.prototype.setOption = function (t, e, n) { e = Xp(e); this._optionManager.setOption(t, n, e), this._resetOption(null, e) }, h.prototype.resetOption = function (t, e) { return this._resetOption(t, Xp(e)) }, h.prototype._resetOption = function (t, e) { var n, i = !1, r = this._optionManager; return t && "recreate" !== t || (n = r.mountOption("recreate" === t), this.option && "recreate" !== t ? (this.restoreData(), this._mergeOption(n, e)) : Fp(this, n), i = !0), "timeline" !== t && "media" !== t || this.restoreData(), t && "recreate" !== t && "timeline" !== t || (n = r.getTimelineOption(this)) && (i = !0, this._mergeOption(n, e)), t && "recreate" !== t && "media" !== t || (n = r.getMediaOption(this)).length && O(n, function (t) { i = !0, this._mergeOption(t, e) }, this), i }, h.prototype.mergeOption = function (t) { this._mergeOption(t, null) }, h.prototype._mergeOption = function (i, t) { var r = this.option, h = this._componentsMap, c = this._componentsCount, n = [], o = E(), p = t && t.replaceMergeMainTypeMap; Ip(this).datasetMap = E(), O(i, function (t, e) { null != t && (g.hasClass(e) ? e && (n.push(e), o.set(e, !0)) : r[e] = null == r[e] ? y(t) : d(r[e], t, !0)) }), p && p.each(function (t, e) { g.hasClass(e) && !o.get(e) && (n.push(e), o.set(e, !0)) }), g.topologicalTravel(n, g.getAllClassMainTypes(), function (o) { t = this, n = co(i[e = o]); var t = (e = (e = Op.get(e)) && e(t)) ? n.concat(e) : n, e = h.get(o), n = yo(e, t, e ? p && p.get(o) ? "replaceMerge" : "normalMerge" : "replaceAll"); bo(n, o, g), r[o] = null, h.set(o, null), c.set(o, 0); var a, s = [], l = [], u = 0; O(n, function (t, e) { var n = t.existing, i = t.newOption; if (i) { var r = g.getClass(o, t.keyInfo.subType, !("series" === o)); if (!r) return; if ("tooltip" === o) { if (a) return; a = !0 } n && n.constructor === r ? (n.name = t.keyInfo.name, n.mergeOption(i, this), n.optionUpdated(i, !1)) : (e = P({ componentIndex: e }, t.keyInfo), P(n = new r(i, this, this, e), e), t.brandNew && (n.__requireNewView = !0), n.init(i, this, this), n.optionUpdated(null, !0)) } else n && (n.mergeOption({}, this), n.optionUpdated({}, !1)); n ? (s.push(n.option), l.push(n), u++) : (s.push(void 0), l.push(void 0)) }, this), r[o] = s, h.set(o, l), c.set(o, u), "series" === o && zp(this) }, this), this._seriesIndices || zp(this) }, h.prototype.getOption = function () { var a = y(this.option); return O(a, function (t, e) { if (g.hasClass(e)) { for (var n = co(t), i = n.length, r = !1, o = i - 1; 0 <= o; o--)n[o] && !wo(n[o]) ? r = !0 : (n[o] = null, r || i--); n.length = i, a[e] = n } }), delete a[Hp], a }, h.prototype.getTheme = function () { return this._theme }, h.prototype.getLocaleModel = function () { return this._locale }, h.prototype.setUpdatePayload = function (t) { this._payload = t }, h.prototype.getUpdatePayload = function () { return this._payload }, h.prototype.getComponent = function (t, e) { var n = this._componentsMap.get(t); if (n) { t = n[e || 0]; if (t) return t; if (null == e) for (var i = 0; i < n.length; i++)if (n[i]) return n[i] } }, h.prototype.queryComponents = function (t) { var e, n, i, r, o, a = t.mainType; return a && (n = t.index, i = t.id, r = t.name, o = this._componentsMap.get(a)) && o.length ? (null != n ? (e = [], O(co(n), function (t) { o[t] && e.push(o[t]) })) : e = null != i ? Gp("id", i, o) : null != r ? Gp("name", r, o) : ut(o, function (t) { return !!t }), Up(e, t)) : [] }, h.prototype.findComponents = function (t) { var e, n = t.query, i = t.mainType, r = (r = i + "Index", o = i + "Id", e = i + "Name", !n || null == n[r] && null == n[o] && null == n[e] ? null : { mainType: i, index: n[r], id: n[o], name: n[e] }), o = Up(r ? this.queryComponents(r) : ut(this._componentsMap.get(i), function (t) { return !!t }), t); return t.filter ? ut(o, t.filter) : o }, h.prototype.eachComponent = function (t, e, n) { var i = this._componentsMap; if (S(t)) { var r = e, o = t; i.each(function (t, e) { for (var n = 0; t && n < t.length; n++) { var i = t[n]; i && o.call(r, e, i, i.componentIndex) } }) } else for (var a = H(t) ? i.get(t) : R(t) ? this.findComponents(t) : null, s = 0; a && s < a.length; s++) { var l = a[s]; l && e.call(n, l, l.componentIndex) } }, h.prototype.getSeriesByName = function (t) { var e = _o(t, null); return ut(this._componentsMap.get("series"), function (t) { return !!t && null != e && t.name === e }) }, h.prototype.getSeriesByIndex = function (t) { return this._componentsMap.get("series")[t] }, h.prototype.getSeriesByType = function (e) { return ut(this._componentsMap.get("series"), function (t) { return !!t && t.subType === e }) }, h.prototype.getSeries = function () { return ut(this._componentsMap.get("series"), function (t) { return !!t }) }, h.prototype.getSeriesCount = function () { return this._componentsCount.get("series") }, h.prototype.eachSeries = function (n, i) { Bp(this), O(this._seriesIndices, function (t) { var e = this._componentsMap.get("series")[t]; n.call(i, e, t) }, this) }, h.prototype.eachRawSeries = function (e, n) { O(this._componentsMap.get("series"), function (t) { t && e.call(n, t, t.componentIndex) }) }, h.prototype.eachSeriesByType = function (n, i, r) { Bp(this), O(this._seriesIndices, function (t) { var e = this._componentsMap.get("series")[t]; e.subType === n && i.call(r, e, t) }, this) }, h.prototype.eachRawSeriesByType = function (t, e, n) { return O(this.getSeriesByType(t), e, n) }, h.prototype.isSeriesFiltered = function (t) { return Bp(this), null == this._seriesIndicesMap.get(t.componentIndex) }, h.prototype.getCurrentSeriesIndices = function () { return (this._seriesIndices || []).slice() }, h.prototype.filterSeries = function (n, i) { Bp(this); var r = []; O(this._seriesIndices, function (t) { var e = this._componentsMap.get("series")[t]; n.call(i, e, t) && r.push(t) }, this), this._seriesIndices = r, this._seriesIndicesMap = E(r) }, h.prototype.restoreData = function (n) { zp(this); var t = this._componentsMap, i = []; t.each(function (t, e) { g.hasClass(e) && i.push(e) }), g.topologicalTravel(i, g.getAllClassMainTypes(), function (e) { O(t.get(e), function (t) { !t || "series" === e && function (t, e) { { var n, i; if (e) return n = e.seriesIndex, i = e.seriesId, e = e.seriesName, null != n && t.componentIndex !== n || null != i && t.id !== i || null != e && t.name !== e } }(t, n) || t.restoreData() }) }) }, h.internalField = (zp = function (t) { var e = t._seriesIndices = []; O(t._componentsMap.get("series"), function (t) { t && e.push(t.componentIndex) }), t._seriesIndicesMap = E(e) }, Bp = function (t) { }, void (Fp = function (t, e) { t.option = {}, t.option[Hp] = 1, t._componentsMap = E({ series: [] }), t._componentsCount = E(); var n, i, r = e.aria; R(r) && null == r.enabled && (r.enabled = !0), n = e, r = t._theme.option, i = n.color && !n.colorLayer, O(r, function (t, e) { "colorLayer" === e && i || g.hasClass(e) || ("object" == typeof t ? n[e] = n[e] ? d(n[e], t, !1) : y(t) : null == n[e] && (n[e] = t)) }), d(e, vp, !1), t._mergeOption(e, null) })), h); function h() { return null !== Vp && Vp.apply(this, arguments) || this } function Gp(e, t, n) { var i, r; return V(t) ? (i = E(), O(t, function (t) { null != t && null != _o(t, null) && i.set(t, !0) }), ut(n, function (t) { return t && i.get(t[e]) })) : (r = _o(t, null), ut(n, function (t) { return t && null != r && t[e] === r })) } function Up(t, e) { return e.hasOwnProperty("subType") ? ut(t, function (t) { return t && t.subType === e.subType }) : t } function Xp(t) { var e = E(); return t && O(co(t.replaceMerge), function (t) { e.set(t, !0) }), { replaceMergeMainTypeMap: e } } at(Wp, Np); function Yp(e) { O(qp, function (t) { this[t] = ht(e[t], e) }, this) } var qp = ["getDom", "getZr", "getWidth", "getHeight", "getDevicePixelRatio", "dispatchAction", "isSSR", "isDisposed", "on", "off", "getDataURL", "getConnectedDataURL", "getOption", "getId", "updateLabelLayout"], Zp = {}, jp = (Kp.prototype.create = function (n, i) { var r = []; O(Zp, function (t, e) { t = t.create(n, i); r = r.concat(t || []) }), this._coordinateSystems = r }, Kp.prototype.update = function (e, n) { O(this._coordinateSystems, function (t) { t.update && t.update(e, n) }) }, Kp.prototype.getCoordinateSystems = function () { return this._coordinateSystems.slice() }, Kp.register = function (t, e) { Zp[t] = e }, Kp.get = function (t) { return Zp[t] }, Kp); function Kp() { this._coordinateSystems = [] } var $p = /^(min|max)?(.+)$/, Qp = (Jp.prototype.setOption = function (t, e, n) { t && (O(co(t.series), function (t) { t && t.data && gt(t.data) && Dt(t.data) }), O(co(t.dataset), function (t) { t && t.source && gt(t.source) && Dt(t.source) })), t = y(t); var i, r, o, a, s, l, u, h, c, p, d = this._optionBackup, t = (i = e, r = !d, s = [], t = (e = t).baseOption, l = e.timeline, u = e.options, h = e.media, c = !!e.media, p = !!(u || l || t && t.timeline), t ? (a = t).timeline || (a.timeline = l) : ((p || c) && (e.options = e.media = null), a = e), c && V(h) && O(h, function (t) { t && t.option && (t.query ? s.push(t) : o = o || t) }), f(a), O(u, f), O(s, function (t) { return f(t.option) }), { baseOption: a, timelineOptions: u || [], mediaDefault: o, mediaList: s }); function f(e) { O(i, function (t) { t(e, r) }) } this._newBaseOption = t.baseOption, d ? (t.timelineOptions.length && (d.timelineOptions = t.timelineOptions), t.mediaList.length && (d.mediaList = t.mediaList), t.mediaDefault && (d.mediaDefault = t.mediaDefault)) : this._optionBackup = t }, Jp.prototype.mountOption = function (t) { var e = this._optionBackup; return this._timelineOptions = e.timelineOptions, this._mediaList = e.mediaList, this._mediaDefault = e.mediaDefault, this._currentMediaIndices = [], y(t ? e.baseOption : this._newBaseOption) }, Jp.prototype.getTimelineOption = function (t) { var e, n = this._timelineOptions; return e = n.length && (t = t.getComponent("timeline")) ? y(n[t.getCurrentIndex()]) : e }, Jp.prototype.getMediaOption = function (t) { var e, n, i = this._api.getWidth(), r = this._api.getHeight(), o = this._mediaList, a = this._mediaDefault, s = [], l = []; if (o.length || a) { for (var u = 0, h = o.length; u < h; u++)!function (t, e, n) { var i = { width: e, height: n, aspectratio: e / n }, r = !0; return O(t, function (t, e) { var n, e = e.match($p); e && e[1] && e[2] && (n = e[1], e = e[2].toLowerCase(), e = i[e], t = t, ("min" === (n = n) ? t <= e : "max" === n ? e <= t : e === t) || (r = !1)) }), r }(o[u].query, i, r) || s.push(u); (s = !s.length && a ? [-1] : s).length && (e = s, n = this._currentMediaIndices, e.join(",") !== n.join(",")) && (l = F(s, function (t) { return y((-1 === t ? a : o[t]).option) })), this._currentMediaIndices = s } return l }, Jp); function Jp(t) { this._timelineOptions = [], this._mediaList = [], this._currentMediaIndices = [], this._api = t } var td = O, ed = R, nd = ["areaStyle", "lineStyle", "nodeStyle", "linkStyle", "chordStyle", "label", "labelLine"]; function id(t) { var e = t && t.itemStyle; if (e) for (var n = 0, i = nd.length; n < i; n++) { var r = nd[n], o = e.normal, a = e.emphasis; o && o[r] && (t[r] = t[r] || {}, t[r].normal ? d(t[r].normal, o[r]) : t[r].normal = o[r], o[r] = null), a && a[r] && (t[r] = t[r] || {}, t[r].emphasis ? d(t[r].emphasis, a[r]) : t[r].emphasis = a[r], a[r] = null) } } function rd(t, e, n) { var i, r; t && t[e] && (t[e].normal || t[e].emphasis) && (i = t[e].normal, r = t[e].emphasis, i && (n ? (t[e].normal = t[e].emphasis = null, B(t[e], i)) : t[e] = i), r) && (t.emphasis = t.emphasis || {}, (t.emphasis[e] = r).focus && (t.emphasis.focus = r.focus), r.blurScope) && (t.emphasis.blurScope = r.blurScope) } function od(t) { rd(t, "itemStyle"), rd(t, "lineStyle"), rd(t, "areaStyle"), rd(t, "label"), rd(t, "labelLine"), rd(t, "upperLabel"), rd(t, "edgeLabel") } function ad(t, e) { var n = ed(t) && t[e], i = ed(n) && n.textStyle; if (i) for (var r = 0, o = fo.length; r < o; r++) { var a = fo[r]; i.hasOwnProperty(a) && (n[a] = i[a]) } } function sd(t) { t && (od(t), ad(t, "label"), t.emphasis) && ad(t.emphasis, "label") } function ld(t) { return V(t) ? t : t ? [t] : [] } function ud(t) { return (V(t) ? t[0] : t) || {} } function hd(e, t) { td(ld(e.series), function (t) { if (ed(t)) if (ed(t)) { id(t), od(t), ad(t, "label"), ad(t, "upperLabel"), ad(t, "edgeLabel"), t.emphasis && (ad(t.emphasis, "label"), ad(t.emphasis, "upperLabel"), ad(t.emphasis, "edgeLabel")); var e = t.markPoint, n = (e && (id(e), sd(e)), t.markLine), i = (n && (id(n), sd(n)), t.markArea), r = (i && sd(i), t.data); if ("graph" === t.type) { var r = r || t.nodes, o = t.links || t.edges; if (o && !gt(o)) for (var a = 0; a < o.length; a++)sd(o[a]); O(t.categories, function (t) { od(t) }) } if (r && !gt(r)) for (a = 0; a < r.length; a++)sd(r[a]); if ((e = t.markPoint) && e.data) for (var s = e.data, a = 0; a < s.length; a++)sd(s[a]); if ((n = t.markLine) && n.data) { var l = n.data; for (a = 0; a < l.length; a++)V(l[a]) ? (sd(l[a][0]), sd(l[a][1])) : sd(l[a]) } "gauge" === t.type ? (ad(t, "axisLabel"), ad(t, "title"), ad(t, "detail")) : "treemap" === t.type ? (rd(t.breadcrumb, "itemStyle"), O(t.levels, function (t) { od(t) })) : "tree" === t.type && od(t.leaves) } }); var n = ["xAxis", "yAxis", "radiusAxis", "angleAxis", "singleAxis", "parallelAxis", "radar"]; t && n.push("valueAxis", "categoryAxis", "logAxis", "timeAxis"), td(n, function (t) { td(ld(e[t]), function (t) { t && (ad(t, "axisLabel"), ad(t.axisPointer, "label")) }) }), td(ld(e.parallel), function (t) { t = t && t.parallelAxisDefault; ad(t, "axisLabel"), ad(t && t.axisPointer, "label") }), td(ld(e.calendar), function (t) { rd(t, "itemStyle"), ad(t, "dayLabel"), ad(t, "monthLabel"), ad(t, "yearLabel") }), td(ld(e.radar), function (t) { ad(t, "name"), t.name && null == t.axisName && (t.axisName = t.name, delete t.name), null != t.nameGap && null == t.axisNameGap && (t.axisNameGap = t.nameGap, delete t.nameGap) }), td(ld(e.geo), function (t) { ed(t) && (sd(t), td(ld(t.regions), function (t) { sd(t) })) }), td(ld(e.timeline), function (t) { sd(t), rd(t, "label"), rd(t, "itemStyle"), rd(t, "controlStyle", !0); t = t.data; V(t) && O(t, function (t) { R(t) && (rd(t, "label"), rd(t, "itemStyle")) }) }), td(ld(e.toolbox), function (t) { rd(t, "iconStyle"), td(t.feature, function (t) { rd(t, "iconStyle") }) }), ad(ud(e.axisPointer), "label"), ad(ud(e.tooltip).axisPointer, "label") } function cd(e) { e && O(pd, function (t) { t[0] in e && !(t[1] in e) && (e[t[1]] = e[t[0]]) }) } var pd = [["x", "left"], ["y", "top"], ["x2", "right"], ["y2", "bottom"]], dd = ["grid", "geo", "parallel", "legend", "toolbox", "title", "visualMap", "dataZoom", "timeline"], fd = [["borderRadius", "barBorderRadius"], ["borderColor", "barBorderColor"], ["borderWidth", "barBorderWidth"]]; function gd(t) { var e = t && t.itemStyle; if (e) for (var n = 0; n < fd.length; n++) { var i = fd[n][1], r = fd[n][0]; null != e[i] && (e[r] = e[i]) } } function yd(t) { t && "edge" === t.alignTo && null != t.margin && null == t.edgeDistance && (t.edgeDistance = t.margin) } function md(t) { t && t.downplay && !t.blur && (t.blur = t.downplay) } function vd(e, t) { hd(e, t), e.series = co(e.series), O(e.series, function (t) { if (R(t)) { var e, n = t.type; if ("line" === n) null != t.clipOverflow && (t.clip = t.clipOverflow); else if ("pie" === n || "gauge" === n) { if (null != t.clockWise && (t.clockwise = t.clockWise), yd(t.label), (e = t.data) && !gt(e)) for (var i = 0; i < e.length; i++)yd(e[i]); null != t.hoverOffset && (t.emphasis = t.emphasis || {}, t.emphasis.scaleSize = null) && (t.emphasis.scaleSize = t.hoverOffset) } else if ("gauge" === n) { var r = function (t, e) { for (var n = e.split(","), i = t, r = 0; r < n.length && null != (i = i && i[n[r]]); r++); return i }(t, "pointer.color"); if (null != r) { var o = t; var a = "itemStyle.color"; var s = void 0; for (var l, u = a.split(","), h = o, c = 0; c < u.length - 1; c++)null == h[l = u[c]] && (h[l] = {}), h = h[l]; !s && null != h[u[c]] || (h[u[c]] = r) } } else if ("bar" === n) { if (gd(t), gd(t.backgroundStyle), gd(t.emphasis), (e = t.data) && !gt(e)) for (i = 0; i < e.length; i++)"object" == typeof e[i] && (gd(e[i]), gd(e[i] && e[i].emphasis)) } else "sunburst" === n ? ((a = t.highlightPolicy) && (t.emphasis = t.emphasis || {}, t.emphasis.focus || (t.emphasis.focus = a)), md(t), function t(e, n) { if (e) for (var i = 0; i < e.length; i++)n(e[i]), e[i] && t(e[i].children, n) }(t.data, md)) : "graph" === n || "sankey" === n ? (o = t) && null != o.focusNodeAdjacency && (o.emphasis = o.emphasis || {}, null == o.emphasis.focus) && (o.emphasis.focus = "adjacency") : "map" === n && (t.mapType && !t.map && (t.map = t.mapType), t.mapLocation) && B(t, t.mapLocation); null != t.hoverAnimation && (t.emphasis = t.emphasis || {}, t.emphasis) && null == t.emphasis.scale && (t.emphasis.scale = t.hoverAnimation), cd(t) } }), e.dataRange && (e.visualMap = e.dataRange), O(dd, function (t) { t = e[t]; t && O(t = V(t) ? t : [t], function (t) { cd(t) }) }) } function _d(_) { O(_, function (p, d) { var f = [], g = [NaN, NaN], t = [p.stackResultDimension, p.stackedOverDimension], y = p.data, m = p.isStackedByIndex, v = p.seriesModel.get("stackStrategy") || "samesign"; y.modify(t, function (t, e, n) { var i, r, o = y.get(p.stackedDimension, n); if (isNaN(o)) return g; m ? r = y.getRawIndex(n) : i = y.get(p.stackedByDimension, n); for (var a, s, l, u = NaN, h = d - 1; 0 <= h; h--) { var c = _[h]; if (0 <= (r = m ? r : c.data.rawIndexOf(c.stackedByDimension, i))) { c = c.data.getByRawIndex(c.stackResultDimension, r); if ("all" === v || "positive" === v && 0 < c || "negative" === v && c < 0 || "samesign" === v && 0 <= o && 0 < c || "samesign" === v && o <= 0 && c < 0) { a = o, s = c, l = void 0, l = Math.max(jr(a), jr(s)), a += s, o = Xr < l ? a : Zr(a, l), u = c; break } } } return f[0] = o, f[1] = u, f }) }) } var xd, wd, bd = function (t) { this.data = t.data || (t.sourceFormat === Sp ? {} : []), this.sourceFormat = t.sourceFormat || Tp, this.seriesLayoutBy = t.seriesLayoutBy || Cp, this.startIndex = t.startIndex || 0, this.dimensionsDetectedCount = t.dimensionsDetectedCount, this.metaRawOption = t.metaRawOption; var e = this.dimensionsDefine = t.dimensionsDefine; if (e) for (var n = 0; n < e.length; n++) { var i = e[n]; null == i.type && Pp(this, n) === Dp.Must && (i.type = "ordinal") } }; function Sd(t) { return t instanceof bd } function Md(t, e, n) { n = n || Cd(t); var i = e.seriesLayoutBy, r = function (t, e, n, i, r) { var o, a; if (!t) return { dimensionsDefine: kd(r), startIndex: a, dimensionsDetectedCount: o }; { var s; e === wp ? (s = t, "auto" === i || null == i ? Dd(function (t) { null != t && "-" !== t && (H(t) ? null == a && (a = 1) : a = 0) }, n, s, 10) : a = dt(i) ? i : i ? 1 : 0, r || 1 !== a || (r = [], Dd(function (t, e) { r[e] = null != t ? t + "" : "" }, n, s, 1 / 0)), o = r ? r.length : n === kp ? s.length : s[0] ? s[0].length : null) : e === bp ? r = r || function (t) { for (var e, n = 0; n < t.length && !(e = t[n++]);); if (e) return D(e) }(t) : e === Sp ? r || (r = [], O(t, function (t, e) { r.push(e) })) : e === xp && (i = go(t[0]), o = V(i) && i.length || 1) } return { startIndex: a, dimensionsDefine: kd(r), dimensionsDetectedCount: o } }(t, n, i, e.sourceHeader, e.dimensions); return new bd({ data: t, sourceFormat: n, seriesLayoutBy: i, dimensionsDefine: r.dimensionsDefine, startIndex: r.startIndex, dimensionsDetectedCount: r.dimensionsDetectedCount, metaRawOption: y(e) }) } function Td(t) { return new bd({ data: t, sourceFormat: gt(t) ? Mp : xp }) } function Cd(t) { var e = Tp; if (gt(t)) e = Mp; else if (V(t)) { 0 === t.length && (e = wp); for (var n = 0, i = t.length; n < i; n++) { var r = t[n]; if (null != r) { if (V(r)) { e = wp; break } if (R(r)) { e = bp; break } } } } else if (R(t)) for (var o in t) if (Bt(t, o) && st(t[o])) { e = Sp; break } return e } function kd(t) { var i; if (t) return i = E(), F(t, function (t, e) { var n, t = { name: (t = R(t) ? t : { name: t }).name, displayName: t.displayName, type: t.type }; return null != t.name && (t.name += "", null == t.displayName && (t.displayName = t.name), (n = i.get(t.name)) ? t.name += "-" + n.count++ : i.set(t.name, { count: 1 })), t }) } function Dd(t, e, n, i) { if (e === kp) for (var r = 0; r < n.length && r < i; r++)t(n[r] ? n[r][0] : null, r); else for (var o = n[0] || [], r = 0; r < o.length && r < i; r++)t(o[r], r) } function Id(t) { t = t.sourceFormat; return t === bp || t === Sp } Rd.prototype.getSource = function () { return this._source }, Rd.prototype.count = function () { return 0 }, Rd.prototype.getItem = function (t, e) { }, Rd.prototype.appendData = function (t) { }, Rd.prototype.clean = function () { }, Rd.protoInitialize = ((nc = Rd.prototype).pure = !1, void (nc.persistent = !0)), Rd.internalField = (wd = function (t, e, n) { var i, r = n.sourceFormat, o = n.seriesLayoutBy, a = n.startIndex, n = n.dimensionsDefine; P(t, xd[Xd(r, o)]), r === Mp ? (t.getItem = Ad, t.count = Pd, t.fillStorage = Ld) : (i = Bd(r, o), t.getItem = ht(i, null, e, a, n), i = Hd(r, o), t.count = ht(i, null, e, a, n)) }, Ad = function (t, e) { t -= this._offset, e = e || []; for (var n = this._data, i = this._dimSize, r = i * t, o = 0; o < i; o++)e[o] = n[r + o]; return e }, Ld = function (t, e, n, i) { for (var r = this._data, o = this._dimSize, a = 0; a < o; a++) { for (var s = i[a], l = null == s[0] ? 1 / 0 : s[0], u = null == s[1] ? -1 / 0 : s[1], h = e - t, c = n[a], p = 0; p < h; p++) { var d = r[p * o + a]; (c[t + p] = d) < l && (l = d), u < d && (u = d) } s[0] = l, s[1] = u } }, Pd = function () { return this._data ? this._data.length / this._dimSize : 0 }, (nc = {})[wp + "_" + Cp] = { pure: !0, appendData: Nd }, nc[wp + "_" + kp] = { pure: !0, appendData: function () { throw new Error('Do not support appendData when set seriesLayoutBy: "row".') } }, nc[bp] = { pure: !0, appendData: Nd }, nc[Sp] = { pure: !0, appendData: function (t) { var r = this._data; O(t, function (t, e) { for (var n = r[e] || (r[e] = []), i = 0; i < (t || []).length; i++)n.push(t[i]) }) } }, nc[xp] = { appendData: Nd }, nc[Mp] = { persistent: !1, pure: !0, appendData: function (t) { this._data = t }, clean: function () { this._offset += this.count(), this._data = null } }, void (xd = nc)); var Ad, Ld, Pd, Od = Rd; function Rd(t, e) { var t = Sd(t) ? t : Td(t), n = (this._source = t, this._data = t.data); t.sourceFormat === Mp && (this._offset = 0, this._dimSize = e, this._data = n), wd(this, n, t) } function Nd(t) { for (var e = 0; e < t.length; e++)this._data.push(t[e]) } function Ed(t, e, n, i) { return t[i] } (Ic = {})[wp + "_" + Cp] = function (t, e, n, i) { return t[i + e] }, Ic[wp + "_" + kp] = function (t, e, n, i, r) { i += e; for (var o = r || [], a = t, s = 0; s < a.length; s++) { var l = a[s]; o[s] = l ? l[i] : null } return o }, Ic[bp] = Ed, Ic[Sp] = function (t, e, n, i, r) { for (var o = r || [], a = 0; a < n.length; a++) { var s = t[n[a].name]; o[a] = s ? s[i] : null } return o }, Ic[xp] = Ed; var zd = Ic; function Bd(t, e) { return zd[Xd(t, e)] } function Fd(t, e, n) { return t.length } (ac = {})[wp + "_" + Cp] = function (t, e, n) { return Math.max(0, t.length - e) }, ac[wp + "_" + kp] = function (t, e, n) { t = t[0]; return t ? Math.max(0, t.length - e) : 0 }, ac[bp] = Fd, ac[Sp] = function (t, e, n) { t = t[n[0].name]; return t ? t.length : 0 }, ac[xp] = Fd; var Vd = ac; function Hd(t, e) { return Vd[Xd(t, e)] } function Wd(t, e, n) { return t[e] } (Uo = {})[wp] = Wd, Uo[bp] = function (t, e, n) { return t[n] }, Uo[Sp] = Wd, Uo[xp] = function (t, e, n) { t = go(t); return t instanceof Array ? t[e] : t }, Uo[Mp] = Wd; var Gd = Uo; function Ud(t) { return Gd[t] } function Xd(t, e) { return t === wp ? t + "_" + e : t } function Yd(t, e, n) { if (t) { var i, r, e = t.getRawDataItem(e); if (null != e) return i = (r = t.getStore()).getSource().sourceFormat, null != n ? (t = t.getDimensionIndex(n), n = r.getDimensionProperty(t), Ud(i)(e, t, n)) : (r = e, i === xp ? go(e) : r) } } var qd = /\{@(.+?)\}/g, hc = (Zd.prototype.getDataParams = function (t, e) { var n = this.getData(e), i = this.getRawValue(t, e), r = n.getRawIndex(t), o = n.getName(t), a = n.getRawDataItem(t), s = n.getItemVisual(t, "style"), t = s && s[n.getItemVisual(t, "drawType") || "fill"], s = s && s.stroke, l = this.mainType, u = "series" === l, n = n.userOutput && n.userOutput.get(); return { componentType: l, componentSubType: this.subType, componentIndex: this.componentIndex, seriesType: u ? this.subType : null, seriesIndex: this.seriesIndex, seriesId: u ? this.id : null, seriesName: u ? this.name : null, name: o, dataIndex: r, data: a, dataType: e, value: i, color: t, borderColor: s, dimensionNames: n ? n.fullDimensions : null, encode: n ? n.encode : null, $vars: ["seriesName", "name", "value"] } }, Zd.prototype.getFormattedLabel = function (i, t, e, n, r, o) { t = t || "normal"; var a = this.getData(e), e = this.getDataParams(i, e); return o && (e.value = o.interpolatedValue), null != n && V(e.value) && (e.value = e.value[n]), S(r = r || a.getItemModel(i).get("normal" === t ? ["label", "formatter"] : [t, "label", "formatter"])) ? (e.status = t, e.dimensionIndex = n, r(e)) : H(r) ? ep(r, e).replace(qd, function (t, e) { var n = e.length, n = ("[" === e.charAt(0) && "]" === e.charAt(n - 1) && (e = +e.slice(1, n - 1)), Yd(a, i, e)); return null != (n = o && V(o.interpolatedValue) && 0 <= (e = a.getDimensionIndex(e)) ? o.interpolatedValue[e] : n) ? n + "" : "" }) : void 0 }, Zd.prototype.getRawValue = function (t, e) { return Yd(this.getData(e), t) }, Zd.prototype.formatTooltip = function (t, e, n) { }, Zd); function Zd() { } function jd(t) { return new Kd(t) } $d.prototype.perform = function (t) { var e, n = this._upstream, i = t && t.skip; this._dirty && n && ((o = this.context).data = o.outputData = n.context.outputData), this.__pipeline && (this.__pipeline.currentTask = this), this._plan && !i && (e = this._plan(this.context)); var r, o = u(this._modBy), a = this._modDataCount || 0, s = u(t && t.modBy), l = t && t.modDataCount || 0; function u(t) { return t = 1 <= t ? t : 1 } o === s && a === l || (e = "reset"), !this._dirty && "reset" !== e || (this._dirty = !1, r = this._doReset(i)), this._modBy = s, this._modDataCount = l; o = t && t.step; if (this._dueEnd = n ? n._outputDueEnd : this._count ? this._count(this.context) : 1 / 0, this._progress) { var h = this._dueIndex, c = Math.min(null != o ? this._dueIndex + o : 1 / 0, this._dueEnd); if (!i && (r || h < c)) { var p = this._progress; if (V(p)) for (var d = 0; d < p.length; d++)this._doProgress(p[d], h, c, s, l); else this._doProgress(p, h, c, s, l) } this._dueIndex = c; a = null != this._settedOutputEnd ? this._settedOutputEnd : c; this._outputDueEnd = a } else this._dueIndex = this._outputDueEnd = null != this._settedOutputEnd ? this._settedOutputEnd : this._dueEnd; return this.unfinished() }, $d.prototype.dirty = function () { this._dirty = !0, this._onDirty && this._onDirty(this.context) }, $d.prototype._doProgress = function (t, e, n, i, r) { of.reset(e, n, i, r), this._callingProgress = t, this._callingProgress({ start: e, end: n, count: n - e, next: of.next }, this.context) }, $d.prototype._doReset = function (t) { this._dueIndex = this._outputDueEnd = this._dueEnd = 0, this._settedOutputEnd = null, !t && this._reset && ((e = this._reset(this.context)) && e.progress && (n = e.forceFirstProgress, e = e.progress), V(e)) && !e.length && (e = null), this._progress = e, this._modBy = this._modDataCount = null; var e, n, t = this._downstream; return t && t.dirty(), n }, $d.prototype.unfinished = function () { return this._progress && this._dueIndex < this._dueEnd }, $d.prototype.pipe = function (t) { this._downstream === t && !this._dirty || ((this._downstream = t)._upstream = this, t.dirty()) }, $d.prototype.dispose = function () { this._disposed || (this._upstream && (this._upstream._downstream = null), this._downstream && (this._downstream._upstream = null), this._dirty = !1, this._disposed = !0) }, $d.prototype.getUpstream = function () { return this._upstream }, $d.prototype.getDownstream = function () { return this._downstream }, $d.prototype.setOutputEnd = function (t) { this._outputDueEnd = this._settedOutputEnd = t }; var Kd = $d; function $d(t) { this._reset = (t = t || {}).reset, this._plan = t.plan, this._count = t.count, this._onDirty = t.onDirty, this._dirty = !0 } var Qd, Jd, tf, ef, nf, rf, of = rf = { reset: function (t, e, n, i) { Jd = t, Qd = e, tf = n, ef = i, nf = Math.ceil(ef / tf), rf.next = 1 < tf && 0 < ef ? sf : af } }; function af() { return Jd < Qd ? Jd++ : null } function sf() { var t = Jd % nf * tf + Math.ceil(Jd / nf), t = Qd <= Jd ? null : t < ef ? t : Jd; return Jd++, t } function lf(t, e) { e = e && e.type; return "ordinal" === e ? t : null == (t = "time" !== e || dt(t) || null == t || "-" === t ? t : +eo(t)) || "" === t ? NaN : +t } var uf = E({ number: function (t) { return parseFloat(t) }, time: function (t) { return +eo(t) }, trim: function (t) { return H(t) ? Ct(t) : t } }); function hf(t) { return uf.get(t) } var cf = { lt: function (t, e) { return t < e }, lte: function (t, e) { return t <= e }, gt: function (t, e) { return e < t }, gte: function (t, e) { return e <= t } }, pf = (gf.prototype.evaluate = function (t) { return dt(t) ? this._opFn(t, this._rvalFloat) : this._opFn(oo(t), this._rvalFloat) }, gf), df = (ff.prototype.evaluate = function (t, e) { var n = dt(t) ? t : oo(t), i = dt(e) ? e : oo(e), r = isNaN(n), o = isNaN(i); return r && (n = this._incomparable), o && (i = this._incomparable), r && o && (r = H(t), o = H(e), r && (n = o ? t : 0), o) && (i = r ? e : 0), n < i ? this._resultLT : i < n ? -this._resultLT : 0 }, ff); function ff(t, e) { t = "desc" === t; this._resultLT = t ? 1 : -1, this._incomparable = "min" === (e = null == e ? t ? "min" : "max" : e) ? -1 / 0 : 1 / 0 } function gf(t, e) { dt(e) || f(""), this._opFn = cf[t], this._rvalFloat = oo(e) } mf.prototype.evaluate = function (t) { var e, n = t === this._rval; return n || (e = typeof t) === this._rvalTypeof || "number" != e && "number" !== this._rvalTypeof || (n = oo(t) === this._rvalFloat), this._isEQ ? n : !n }; var yf = mf; function mf(t, e) { this._rval = e, this._isEQ = t, this._rvalTypeof = typeof e, this._rvalFloat = oo(e) } _f.prototype.getRawData = function () { throw new Error("not supported") }, _f.prototype.getRawDataItem = function (t) { throw new Error("not supported") }, _f.prototype.cloneRawData = function () { }, _f.prototype.getDimensionInfo = function (t) { }, _f.prototype.cloneAllDimensionInfo = function () { }, _f.prototype.count = function () { }, _f.prototype.retrieveValue = function (t, e) { }, _f.prototype.retrieveValueFromItem = function (t, e) { }, _f.prototype.convertValue = lf; var vf = _f; function _f() { } function xf(t) { return Cf(t.sourceFormat) || f(""), t.data } function wf(t) { var e = t.sourceFormat, n = t.data; if (Cf(e) || f(""), e === wp) { for (var i = [], r = 0, o = n.length; r < o; r++)i.push(n[r].slice()); return i } if (e === bp) { for (i = [], r = 0, o = n.length; r < o; r++)i.push(P({}, n[r])); return i } } function bf(t, e, n) { if (null != n) return dt(n) || !isNaN(n) && !Bt(e, n) ? t[n] : Bt(e, n) ? e[n] : void 0 } function Sf(t) { return y(t) } var Mf = E(); function Tf(t, e) { var n = co(t), t = n.length; t || f(""); for (var i = 0, r = t; i < r; i++)e = function (t, i) { i.length || f(""), R(t) || f(""); var e = t.type, d = Mf.get(e), e = (d || f(""), F(i, function (t) { var e = t, t = d, n = new vf, i = e.data, r = n.sourceFormat = e.sourceFormat, o = e.startIndex, a = (e.seriesLayoutBy !== Cp && f(""), []), s = {}; if (h = e.dimensionsDefine) O(h, function (t, e) { var n = t.name, e = { index: e, name: n, displayName: t.displayName }; a.push(e), null != n && (Bt(s, n) && f(""), s[n] = e) }); else for (var l = 0; l < e.dimensionsDetectedCount; l++)a.push({ index: l }); var u = Bd(r, Cp), h = (t.__isBuiltIn && (n.getRawDataItem = function (t) { return u(i, o, a, t) }, n.getRawData = ht(xf, null, e)), n.cloneRawData = ht(wf, null, e), Hd(r, Cp)), c = (n.count = ht(h, null, i, o, a), Ud(r)), p = (n.retrieveValue = function (t, e) { t = u(i, o, a, t); return p(t, e) }, n.retrieveValueFromItem = function (t, e) { var n; return null != t && (n = a[e]) ? c(t, e, n.name) : void 0 }); return n.getDimensionInfo = ht(bf, null, a, s), n.cloneAllDimensionInfo = ht(Sf, null, a), n })); return F(co(d.transform({ upstream: e[0], upstreamList: e, config: y(t.config) })), function (t, e) { R(t) || f(""), t.data || f(""), Cf(Cd(t.data)) || f(""); var n = i[0], e = n && 0 === e && !t.dimensions ? ((e = n.startIndex) && (t.data = n.data.slice(0, e).concat(t.data)), { seriesLayoutBy: Cp, sourceHeader: e, dimensions: n.metaRawOption.dimensions }) : { seriesLayoutBy: Cp, sourceHeader: 0, dimensions: t.dimensions }; return Md(t.data, e, null) }) }(n[i], e), i !== r - 1 && (e.length = Math.max(e.length, 1)); return e } function Cf(t) { return t === wp || t === bp } var kf, nc = "undefined", Df = typeof Uint32Array == nc ? Array : Uint32Array, If = typeof Uint16Array == nc ? Array : Uint16Array, Af = typeof Int32Array == nc ? Array : Int32Array, Ic = typeof Float64Array == nc ? Array : Float64Array, Lf = { float: Ic, int: Af, ordinal: Array, number: Array, time: Ic }; function Pf(t) { return 65535 < t ? Df : If } function Of() { return [1 / 0, -1 / 0] } function Rf(t, e, n, i, r) { n = Lf[n || "float"]; if (r) { var o = t[e], a = o && o.length; if (a !== i) { for (var s = new n(i), l = 0; l < a; l++)s[l] = o[l]; t[e] = s } } else t[e] = new n(i) } c.prototype.initData = function (t, e, n) { this._provider = t, this._chunks = [], this._indices = null, this.getRawIndex = this._getRawIdxIdentity; var i = t.getSource(), r = this.defaultDimValueGetter = kf[i.sourceFormat]; this._dimValueGetter = n || r, this._rawExtent = [], Id(i), this._dimensions = F(e, function (t) { return { type: t.type, property: t.property } }), this._initDataFromProvider(0, t.count()) }, c.prototype.getProvider = function () { return this._provider }, c.prototype.getSource = function () { return this._provider.getSource() }, c.prototype.ensureCalculationDimension = function (t, e) { var n = this._calcDimNameToIdx, i = this._dimensions, r = n.get(t); if (null != r) { if (i[r].type === e) return r } else r = i.length; return i[r] = { type: e }, n.set(t, r), this._chunks[r] = new Lf[e || "float"](this._rawCount), this._rawExtent[r] = Of(), r }, c.prototype.collectOrdinalMeta = function (t, e) { var n = this._chunks[t], i = this._dimensions[t], r = this._rawExtent, o = i.ordinalOffset || 0, a = n.length; 0 === o && (r[t] = Of()); for (var s = r[t], l = o; l < a; l++) { var u = n[l] = e.parseAndCollect(n[l]); isNaN(u) || (s[0] = Math.min(u, s[0]), s[1] = Math.max(u, s[1])) } i.ordinalMeta = e, i.ordinalOffset = a, i.type = "ordinal" }, c.prototype.getOrdinalMeta = function (t) { return this._dimensions[t].ordinalMeta }, c.prototype.getDimensionProperty = function (t) { t = this._dimensions[t]; return t && t.property }, c.prototype.appendData = function (t) { var e = this._provider, n = this.count(), t = (e.appendData(t), e.count()); return e.persistent || (t += n), n < t && this._initDataFromProvider(n, t, !0), [n, t] }, c.prototype.appendValues = function (t, e) { for (var n = this._chunks, i = this._dimensions, r = i.length, o = this._rawExtent, a = this.count(), s = a + Math.max(t.length, e || 0), l = 0; l < r; l++)Rf(n, l, (d = i[l]).type, s, !0); for (var u = [], h = a; h < s; h++)for (var c = h - a, p = 0; p < r; p++) { var d = i[p], f = kf.arrayRows.call(this, t[c] || u, d.property, c, p), g = (n[p][h] = f, o[p]); f < g[0] && (g[0] = f), f > g[1] && (g[1] = f) } return { start: a, end: this._rawCount = this._count = s } }, c.prototype._initDataFromProvider = function (t, e, n) { for (var i = this._provider, r = this._chunks, o = this._dimensions, a = o.length, s = this._rawExtent, l = F(o, function (t) { return t.property }), u = 0; u < a; u++) { var h = o[u]; s[u] || (s[u] = Of()), Rf(r, u, h.type, e, n) } if (i.fillStorage) i.fillStorage(t, e, r, s); else for (var c = [], p = t; p < e; p++)for (var c = i.getItem(p, c), d = 0; d < a; d++) { var f = r[d], g = this._dimValueGetter(c, l[d], p, d), f = (f[p] = g, s[d]); g < f[0] && (f[0] = g), g > f[1] && (f[1] = g) } !i.persistent && i.clean && i.clean(), this._rawCount = this._count = e, this._extent = [] }, c.prototype.count = function () { return this._count }, c.prototype.get = function (t, e) { return 0 <= e && e < this._count && (t = this._chunks[t]) ? t[this.getRawIndex(e)] : NaN }, c.prototype.getValues = function (t, e) { var n = [], i = []; if (null == e) { e = t, t = []; for (var r = 0; r < this._dimensions.length; r++)i.push(r) } else i = t; for (var r = 0, o = i.length; r < o; r++)n.push(this.get(i[r], e)); return n }, c.prototype.getByRawIndex = function (t, e) { return 0 <= e && e < this._rawCount && (t = this._chunks[t]) ? t[e] : NaN }, c.prototype.getSum = function (t) { var e = 0; if (this._chunks[t]) for (var n = 0, i = this.count(); n < i; n++) { var r = this.get(t, n); isNaN(r) || (e += r) } return e }, c.prototype.getMedian = function (t) { var e = [], t = (this.each([t], function (t) { isNaN(t) || e.push(t) }), e.sort(function (t, e) { return t - e })), n = this.count(); return 0 === n ? 0 : n % 2 == 1 ? t[(n - 1) / 2] : (t[n / 2] + t[n / 2 - 1]) / 2 }, c.prototype.indexOfRawIndex = function (t) { if (!(t >= this._rawCount || t < 0)) { if (!this._indices) return t; var e = this._indices, n = e[t]; if (null != n && n < this._count && n === t) return t; for (var i = 0, r = this._count - 1; i <= r;) { var o = (i + r) / 2 | 0; if (e[o] < t) i = 1 + o; else { if (!(e[o] > t)) return o; r = o - 1 } } } return -1 }, c.prototype.indicesOfNearest = function (t, e, n) { var i = this._chunks[t], r = []; if (i) { null == n && (n = 1 / 0); for (var o = 1 / 0, a = -1, s = 0, l = 0, u = this.count(); l < u; l++) { var h = e - i[this.getRawIndex(l)], c = Math.abs(h); c <= n && ((c < o || c === o && 0 <= h && a < 0) && (o = c, a = h, s = 0), h === a) && (r[s++] = l) } r.length = s } return r }, c.prototype.getIndices = function () { var t = this._indices; if (t) { var e = t.constructor, n = this._count; if (e === Array) for (var i = new e(n), r = 0; r < n; r++)i[r] = t[r]; else i = new e(t.buffer, 0, n) } else for (i = new (e = Pf(this._rawCount))(this.count()), r = 0; r < i.length; r++)i[r] = r; return i }, c.prototype.filter = function (t, e) { if (!this._count) return this; for (var n = this.clone(), i = n.count(), r = new (Pf(n._rawCount))(i), o = [], a = t.length, s = 0, l = t[0], u = n._chunks, h = 0; h < i; h++) { var c = void 0, p = n.getRawIndex(h); if (0 === a) c = e(h); else if (1 === a) c = e(u[l][p], h); else { for (var d = 0; d < a; d++)o[d] = u[t[d]][p]; o[d] = h, c = e.apply(null, o) } c && (r[s++] = p) } return s < i && (n._indices = r), n._count = s, n._extent = [], n._updateGetRawIdx(), n }, c.prototype.selectRange = function (t) { var e = this.clone(), n = e._count; if (!n) return this; var i = D(t), r = i.length; if (!r) return this; var o = e.count(), a = new (Pf(e._rawCount))(o), s = 0, l = i[0], u = t[l][0], h = t[l][1], c = e._chunks, l = !1; if (!e._indices) { var p = 0; if (1 === r) { for (var d = c[i[0]], f = 0; f < n; f++)((v = d[f]) >= u && v <= h || isNaN(v)) && (a[s++] = p), p++; l = !0 } else if (2 === r) { for (var d = c[i[0]], g = c[i[1]], y = t[i[1]][0], m = t[i[1]][1], f = 0; f < n; f++) { var v = d[f], _ = g[f]; (u <= v && v <= h || isNaN(v)) && (y <= _ && _ <= m || isNaN(_)) && (a[s++] = p), p++ } l = !0 } } if (!l) if (1 === r) for (f = 0; f < o; f++) { var x = e.getRawIndex(f); ((v = c[i[0]][x]) >= u && v <= h || isNaN(v)) && (a[s++] = x) } else for (f = 0; f < o; f++) { for (var w = !0, b = (x = e.getRawIndex(f), 0); b < r; b++) { var S = i[b]; ((v = c[S][x]) < t[S][0] || v > t[S][1]) && (w = !1) } w && (a[s++] = e.getRawIndex(f)) } return s < o && (e._indices = a), e._count = s, e._extent = [], e._updateGetRawIdx(), e }, c.prototype.map = function (t, e) { var n = this.clone(t); return this._updateDims(n, t, e), n }, c.prototype.modify = function (t, e) { this._updateDims(this, t, e) }, c.prototype._updateDims = function (t, e, n) { for (var i = t._chunks, r = [], o = e.length, a = t.count(), s = [], l = t._rawExtent, u = 0; u < e.length; u++)l[e[u]] = Of(); for (var h = 0; h < a; h++) { for (var c = t.getRawIndex(h), p = 0; p < o; p++)s[p] = i[e[p]][c]; s[o] = h; var d = n && n.apply(null, s); if (null != d) for ("object" != typeof d && (r[0] = d, d = r), u = 0; u < d.length; u++) { var f = e[u], g = d[u], y = l[f], f = i[f]; f && (f[c] = g), g < y[0] && (y[0] = g), g > y[1] && (y[1] = g) } } }, c.prototype.lttbDownSample = function (t, e) { var n, i = this.clone([t], !0), r = i._chunks[t], o = this.count(), a = 0, s = Math.floor(1 / e), l = this.getRawIndex(0), u = new (Pf(this._rawCount))(Math.min(2 * (Math.ceil(o / s) + 2), o)); u[a++] = l; for (var h = 1; h < o - 1; h += s) { for (var c = Math.min(h + s, o - 1), p = Math.min(h + 2 * s, o), d = (p + c) / 2, f = 0, g = c; g < p; g++) { var y = r[M = this.getRawIndex(g)]; isNaN(y) || (f += y) } f /= p - c; for (var c = h, m = Math.min(h + s, o), v = h - 1, _ = r[l], x = -1, w = c, b = -1, S = 0, g = c; g < m; g++) { var M, y = r[M = this.getRawIndex(g)]; isNaN(y) ? (S++, b < 0 && (b = M)) : (n = Math.abs((v - d) * (y - _) - (v - g) * (f - _))) > x && (x = n, w = M) } 0 < S && S < m - c && (u[a++] = Math.min(b, w), w = Math.max(b, w)), l = u[a++] = w } return u[a++] = this.getRawIndex(o - 1), i._count = a, i._indices = u, i.getRawIndex = this._getRawIdx, i }, c.prototype.downSample = function (t, e, n, i) { for (var r = this.clone([t], !0), o = r._chunks, a = [], s = Math.floor(1 / e), l = o[t], u = this.count(), h = r._rawExtent[t] = Of(), c = new (Pf(this._rawCount))(Math.ceil(u / s)), p = 0, d = 0; d < u; d += s) { u - d < s && (a.length = s = u - d); for (var f = 0; f < s; f++) { var g = this.getRawIndex(d + f); a[f] = l[g] } var y = n(a), m = this.getRawIndex(Math.min(d + i(a, y) || 0, u - 1)); (l[m] = y) < h[0] && (h[0] = y), y > h[1] && (h[1] = y), c[p++] = m } return r._count = p, r._indices = c, r._updateGetRawIdx(), r }, c.prototype.each = function (t, e) { if (this._count) for (var n = t.length, i = this._chunks, r = 0, o = this.count(); r < o; r++) { var a = this.getRawIndex(r); switch (n) { case 0: e(r); break; case 1: e(i[t[0]][a], r); break; case 2: e(i[t[0]][a], i[t[1]][a], r); break; default: for (var s = 0, l = []; s < n; s++)l[s] = i[t[s]][a]; l[s] = r, e.apply(null, l) } } }, c.prototype.getDataExtent = function (t) { var e = this._chunks[t], n = Of(); if (!e) return n; var i, r = this.count(); if (!this._indices) return this._rawExtent[t].slice(); if (i = this._extent[t]) return i.slice(); for (var o = (i = n)[0], a = i[1], s = 0; s < r; s++) { var l = e[this.getRawIndex(s)]; l < o && (o = l), a < l && (a = l) } return this._extent[t] = i = [o, a] }, c.prototype.getRawDataItem = function (t) { var e = this.getRawIndex(t); if (this._provider.persistent) return this._provider.getItem(e); for (var n = [], i = this._chunks, r = 0; r < i.length; r++)n.push(i[r][e]); return n }, c.prototype.clone = function (t, e) { var n, i, r = new c, o = this._chunks, a = t && lt(t, function (t, e) { return t[e] = !0, t }, {}); if (a) for (var s = 0; s < o.length; s++)r._chunks[s] = a[s] ? (n = o[s], i = void 0, (i = n.constructor) === Array ? n.slice() : new i(n)) : o[s]; else r._chunks = o; return this._copyCommonProps(r), e || (r._indices = this._cloneIndices()), r._updateGetRawIdx(), r }, c.prototype._copyCommonProps = function (t) { t._count = this._count, t._rawCount = this._rawCount, t._provider = this._provider, t._dimensions = this._dimensions, t._extent = y(this._extent), t._rawExtent = y(this._rawExtent) }, c.prototype._cloneIndices = function () { if (this._indices) { var t = this._indices.constructor, e = void 0; if (t === Array) for (var n = this._indices.length, e = new t(n), i = 0; i < n; i++)e[i] = this._indices[i]; else e = new t(this._indices); return e } return null }, c.prototype._getRawIdxIdentity = function (t) { return t }, c.prototype._getRawIdx = function (t) { return t < this._count && 0 <= t ? this._indices[t] : -1 }, c.prototype._updateGetRawIdx = function () { this.getRawIndex = this._indices ? this._getRawIdx : this._getRawIdxIdentity }, c.internalField = void (kf = { arrayRows: Ef, objectRows: function (t, e, n, i) { return lf(t[e], this._dimensions[i]) }, keyedColumns: Ef, original: function (t, e, n, i) { t = t && (null == t.value ? t : t.value); return lf(t instanceof Array ? t[i] : t, this._dimensions[i]) }, typedArray: function (t, e, n, i) { return t[i] } }); var Nf = c; function c() { this._chunks = [], this._rawExtent = [], this._extent = [], this._count = 0, this._rawCount = 0, this._calcDimNameToIdx = E() } function Ef(t, e, n, i) { return lf(t[i], this._dimensions[i]) } Bf.prototype.dirty = function () { this._setLocalSource([], []), this._storeList = [], this._dirty = !0 }, Bf.prototype._setLocalSource = function (t, e) { this._sourceList = t, this._upstreamSignList = e, this._versionSignBase++, 9e10 < this._versionSignBase && (this._versionSignBase = 0) }, Bf.prototype._getVersionSign = function () { return this._sourceHost.uid + "_" + this._versionSignBase }, Bf.prototype.prepareSource = function () { this._isDirty() && (this._createSource(), this._dirty = !1) }, Bf.prototype._createSource = function () { this._setLocalSource([], []); var t, e, n, i, r, o, a, s = this._sourceHost, l = this._getUpstreamSourceManagers(), u = !!l.length; Vf(s) ? (i = s, r = t = o = void 0, e = u ? ((e = l[0]).prepareSource(), o = (r = e.getSource()).data, t = r.sourceFormat, [e._getVersionSign()]) : (t = gt(o = i.get("data", !0)) ? Mp : xp, []), i = this._getSourceMetaRawOption() || {}, r = r && r.metaRawOption || {}, a = N(i.seriesLayoutBy, r.seriesLayoutBy) || null, n = N(i.sourceHeader, r.sourceHeader), i = N(i.dimensions, r.dimensions), r = a !== r.seriesLayoutBy || !!n != !!r.sourceHeader || i ? [Md(o, { seriesLayoutBy: a, sourceHeader: n, dimensions: i }, t)] : []) : (o = s, e = u ? (r = (a = this._applyTransform(l)).sourceList, a.upstreamSignList) : (r = [Md(o.get("source", !0), this._getSourceMetaRawOption(), null)], [])), this._setLocalSource(r, e) }, Bf.prototype._applyTransform = function (t) { var e, n = this._sourceHost, i = n.get("transform", !0), r = n.get("fromTransformResult", !0), o = (null != r && 1 !== t.length && Hf(""), []), a = []; return O(t, function (t) { t.prepareSource(); var e = t.getSource(r || 0); null == r || e || Hf(""), o.push(e), a.push(t._getVersionSign()) }), i ? e = Tf(i, o, n.componentIndex) : null != r && (e = [new bd({ data: (t = o[0]).data, sourceFormat: t.sourceFormat, seriesLayoutBy: t.seriesLayoutBy, dimensionsDefine: y(t.dimensionsDefine), startIndex: t.startIndex, dimensionsDetectedCount: t.dimensionsDetectedCount })]), { sourceList: e, upstreamSignList: a } }, Bf.prototype._isDirty = function () { if (this._dirty) return !0; for (var t = this._getUpstreamSourceManagers(), e = 0; e < t.length; e++) { var n = t[e]; if (n._isDirty() || this._upstreamSignList[e] !== n._getVersionSign()) return !0 } }, Bf.prototype.getSource = function (t) { var e = this._sourceList[t = t || 0]; return e || (e = this._getUpstreamSourceManagers())[0] && e[0].getSource(t) }, Bf.prototype.getSharedDataStore = function (t) { var e = t.makeStoreSchema(); return this._innerGetDataStore(e.dimensions, t.source, e.hash) }, Bf.prototype._innerGetDataStore = function (t, e, n) { var i, r = this._storeList, o = r[0], r = (o = o || (r[0] = {}))[n]; return r || (i = this._getUpstreamSourceManagers()[0], Vf(this._sourceHost) && i ? r = i._innerGetDataStore(t, e, n) : (r = new Nf).initData(new Od(e, t.length), t), o[n] = r), r }, Bf.prototype._getUpstreamSourceManagers = function () { var t, e = this._sourceHost; return Vf(e) ? (t = Lp(e)) ? [t.getSourceManager()] : [] : F((t = e).get("transform", !0) || t.get("fromTransformResult", !0) ? Io(t.ecModel, "dataset", { index: t.get("fromDatasetIndex", !0), id: t.get("fromDatasetId", !0) }, Do).models : [], function (t) { return t.getSourceManager() }) }, Bf.prototype._getSourceMetaRawOption = function () { var t, e, n, i = this._sourceHost; return Vf(i) ? (t = i.get("seriesLayoutBy", !0), e = i.get("sourceHeader", !0), n = i.get("dimensions", !0)) : this._getUpstreamSourceManagers().length || (t = (i = i).get("seriesLayoutBy", !0), e = i.get("sourceHeader", !0), n = i.get("dimensions", !0)), { seriesLayoutBy: t, sourceHeader: e, dimensions: n } }; var zf = Bf; function Bf(t) { this._sourceList = [], this._storeList = [], this._upstreamSignList = [], this._versionSignBase = 0, this._dirty = !0, this._sourceHost = t } function Ff(t) { t.option.transform && Dt(t.option.transform) } function Vf(t) { return "series" === t.mainType } function Hf(t) { throw new Error(t) } function Wf(t, e) { return e.type = t, e } function Gf(t) { var e, n, i, r, o, a, s, l, u, h, c, p = t.series, d = t.dataIndex, t = t.multipleSeries, f = p.getData(), g = f.mapDimensionsAll("defaultedTooltip"), y = g.length, m = p.getRawValue(d), v = V(m), _ = (_ = d, np((w = p).getData().getItemVisual(_, "style")[w.visualDrawType])); function x(t, e) { e = s.getDimensionInfo(e); e && !1 !== e.otherDims.tooltip && (l ? c.push(Wf("nameValue", { markerType: "subItem", markerColor: a, name: e.displayName, value: t, valueType: e.type })) : (u.push(t), h.push(e.type))) } 1 < y || v && !y ? (w = m, r = d, o = g, a = _, s = p.getData(), l = lt(w, function (t, e, n) { n = s.getDimensionInfo(n); return t || n && !1 !== n.tooltip && null != n.displayName }, !1), u = [], h = [], c = [], o.length ? O(o, function (t) { x(Yd(s, r, t), t) }) : O(w, x), e = (o = { inlineValues: u, inlineValueTypes: h, blocks: c }).inlineValueTypes, n = o.blocks, i = (o = o.inlineValues)[0]) : y ? (w = f.getDimensionInfo(g[0]), i = o = Yd(f, d, g[0]), e = w.type) : i = o = v ? m[0] : m; var y = xo(p), g = y && p.name || "", w = f.getName(d), v = t ? g : w; return Wf("section", { header: g, noHeader: t || !y, sortParam: i, blocks: [Wf("nameValue", { markerType: "item", markerColor: _, name: v, noName: !Ct(v), value: o, valueType: e })].concat(n || []) }) } var Uf = Mo(); function Xf(t, e) { return t.getName(e) || t.getId(e) } u(m, Yf = g), m.prototype.init = function (t, e, n) { this.seriesIndex = this.componentIndex, this.dataTask = jd({ count: jf, reset: Kf }), this.dataTask.context = { model: this }, this.mergeDefaultAndTheme(t, n), (Uf(this).sourceManager = new zf(this)).prepareSource(); t = this.getInitialData(t, n); Qf(t, this), this.dataTask.context.data = t, Uf(this).dataBeforeProcessed = t, Zf(this), this._initSelectedMapFromData(t) }, m.prototype.mergeDefaultAndTheme = function (t, e) { var n = lp(this), i = n ? hp(t) : {}, r = this.subType; g.hasClass(r), d(t, e.getTheme().get(this.subType)), d(t, this.getDefaultOption()), po(t, "label", ["show"]), this.fillDataTextStyle(t.data), n && up(t, i, n) }, m.prototype.mergeOption = function (t, e) { t = d(this.option, t, !0), this.fillDataTextStyle(t.data); var n = lp(this), n = (n && up(this.option, t, n), Uf(this).sourceManager), n = (n.dirty(), n.prepareSource(), this.getInitialData(t, e)); Qf(n, this), this.dataTask.dirty(), this.dataTask.context.data = n, Uf(this).dataBeforeProcessed = n, Zf(this), this._initSelectedMapFromData(n) }, m.prototype.fillDataTextStyle = function (t) { if (t && !gt(t)) for (var e = ["show"], n = 0; n < t.length; n++)t[n] && t[n].label && po(t[n], "label", e) }, m.prototype.getInitialData = function (t, e) { }, m.prototype.appendData = function (t) { this.getRawData().appendData(t.data) }, m.prototype.getData = function (t) { var e = tg(this); return e ? (e = e.context.data, null == t ? e : e.getLinkedData(t)) : Uf(this).data }, m.prototype.getAllData = function () { var t = this.getData(); return t && t.getLinkedDataAll ? t.getLinkedDataAll() : [{ data: t }] }, m.prototype.setData = function (t) { var e, n = tg(this); n && ((e = n.context).outputData = t, n !== this.dataTask) && (e.data = t), Uf(this).data = t }, m.prototype.getEncode = function () { var t = this.get("encode", !0); if (t) return E(t) }, m.prototype.getSourceManager = function () { return Uf(this).sourceManager }, m.prototype.getSource = function () { return this.getSourceManager().getSource() }, m.prototype.getRawData = function () { return Uf(this).dataBeforeProcessed }, m.prototype.getColorBy = function () { return this.get("colorBy") || "series" }, m.prototype.isColorBySeries = function () { return "series" === this.getColorBy() }, m.prototype.getBaseAxis = function () { var t = this.coordinateSystem; return t && t.getBaseAxis && t.getBaseAxis() }, m.prototype.formatTooltip = function (t, e, n) { return Gf({ series: this, dataIndex: t, multipleSeries: e }) }, m.prototype.isAnimationEnabled = function () { var t = this.ecModel; return !!(!p.node || t && t.ssr) && !!(t = (t = this.getShallow("animation")) && this.getData().count() > this.getShallow("animationThreshold") ? !1 : t) }, m.prototype.restoreData = function () { this.dataTask.dirty() }, m.prototype.getColorFromPalette = function (t, e, n) { var i = this.ecModel; return Np.prototype.getColorFromPalette.call(this, t, e, n) || i.getColorFromPalette(t, e, n) }, m.prototype.coordDimToDataDim = function (t) { return this.getRawData().mapDimensionsAll(t) }, m.prototype.getProgressive = function () { return this.get("progressive") }, m.prototype.getProgressiveThreshold = function () { return this.get("progressiveThreshold") }, m.prototype.select = function (t, e) { this._innerSelect(this.getData(e), t) }, m.prototype.unselect = function (t, e) { var n = this.option.selectedMap; if (n) { var i = this.option.selectedMode, r = this.getData(e); if ("series" === i || "all" === n) this.option.selectedMap = {}, this._selectedDataIndicesMap = {}; else for (var o = 0; o < t.length; o++) { var a = Xf(r, t[o]); n[a] = !1, this._selectedDataIndicesMap[a] = -1 } } }, m.prototype.toggleSelect = function (t, e) { for (var n = [], i = 0; i < t.length; i++)n[0] = t[i], this.isSelected(t[i], e) ? this.unselect(n, e) : this.select(n, e) }, m.prototype.getSelectedDataIndices = function () { if ("all" === this.option.selectedMap) return [].slice.call(this.getData().getIndices()); for (var t = this._selectedDataIndicesMap, e = D(t), n = [], i = 0; i < e.length; i++) { var r = t[e[i]]; 0 <= r && n.push(r) } return n }, m.prototype.isSelected = function (t, e) { var n = this.option.selectedMap; return !!n && (e = this.getData(e), "all" === n || n[Xf(e, t)]) && !e.getItemModel(t).get(["select", "disabled"]) }, m.prototype.isUniversalTransitionEnabled = function () { var t; return !!this.__universalTransitionEnabled || !!(t = this.option.universalTransition) && (!0 === t || t && t.enabled) }, m.prototype._innerSelect = function (t, e) { var n, i = this.option, r = i.selectedMode, o = e.length; if (r && o) if ("series" === r) i.selectedMap = "all"; else if ("multiple" === r) { R(i.selectedMap) || (i.selectedMap = {}); for (var a = i.selectedMap, s = 0; s < o; s++) { var l = e[s]; a[n = Xf(t, l)] = !0, this._selectedDataIndicesMap[n] = t.getRawIndex(l) } } else "single" !== r && !0 !== r || (n = Xf(t, r = e[o - 1]), i.selectedMap = ((i = {})[n] = !0, i), this._selectedDataIndicesMap = ((i = {})[n] = t.getRawIndex(r), i)) }, m.prototype._initSelectedMapFromData = function (n) { var i; this.option.selectedMap || (i = [], n.hasItemOption && n.each(function (t) { var e = n.getRawDataItem(t); e && e.selected && i.push(t) }), 0 < i.length && this._innerSelect(n, i)) }, m.registerClass = function (t) { return g.registerClass(t) }, m.protoInitialize = ((ac = m.prototype).type = "series.__base__", ac.seriesIndex = 0, ac.ignoreStyleOnData = !1, ac.hasSymbolVisual = !1, ac.defaultSymbol = "circle", ac.visualStyleAccessPath = "itemStyle", void (ac.visualDrawType = "fill")); var Yf, qf = m; function m() { var t = null !== Yf && Yf.apply(this, arguments) || this; return t._selectedDataIndicesMap = {}, t } function Zf(t) { var e, n, i = t.name; xo(t) || (t.name = (t = (e = (t = t).getRawData()).mapDimensionsAll("seriesName"), n = [], O(t, function (t) { t = e.getDimensionInfo(t); t.displayName && n.push(t.displayName) }), n.join(" ") || i)) } function jf(t) { return t.model.getRawData().count() } function Kf(t) { t = t.model; return t.setData(t.getRawData().cloneShallow()), $f } function $f(t, e) { e.outputData && t.end > e.outputData.count() && e.model.getRawData().cloneShallow(e.outputData) } function Qf(e, n) { O(Nt(e.CHANGABLE_METHODS, e.DOWNSAMPLE_METHODS), function (t) { e.wrapMethod(t, ct(Jf, n)) }) } function Jf(t, e) { t = tg(t); return t && t.setOutputEnd((e || this).count()), e } function tg(t) { var e, n = (t.ecModel || {}).scheduler, n = n && n.getPipeline(t.uid); if (n) return (n = n.currentTask) && (e = n.agentStubMap) ? e.get(t.uid) : n } at(qf, hc), at(qf, Np), zo(qf, g); ng.prototype.init = function (t, e) { }, ng.prototype.render = function (t, e, n, i) { }, ng.prototype.dispose = function (t, e) { }, ng.prototype.updateView = function (t, e, n, i) { }, ng.prototype.updateLayout = function (t, e, n, i) { }, ng.prototype.updateVisual = function (t, e, n, i) { }, ng.prototype.toggleBlurSeries = function (t, e, n) { }, ng.prototype.eachRendered = function (t) { var e = this.group; e && e.traverse(t) }; var eg = ng; function ng() { this.group = new zr, this.uid = yc("viewComponent") } function ig() { var o = Mo(); return function (t) { var e = o(t), t = t.pipelineContext, n = !!e.large, i = !!e.progressiveRender, r = e.large = !(!t || !t.large), e = e.progressiveRender = !(!t || !t.progressiveRender); return !(n == r && i == e) && "reset" } } Eo(eg), Ho(eg); var rg = Mo(), og = ig(), ag = (sg.prototype.init = function (t, e) { }, sg.prototype.render = function (t, e, n, i) { }, sg.prototype.highlight = function (t, e, n, i) { t = t.getData(i && i.dataType); t && ug(t, i, "emphasis") }, sg.prototype.downplay = function (t, e, n, i) { t = t.getData(i && i.dataType); t && ug(t, i, "normal") }, sg.prototype.remove = function (t, e) { this.group.removeAll() }, sg.prototype.dispose = function (t, e) { }, sg.prototype.updateView = function (t, e, n, i) { this.render(t, e, n, i) }, sg.prototype.updateLayout = function (t, e, n, i) { this.render(t, e, n, i) }, sg.prototype.updateVisual = function (t, e, n, i) { this.render(t, e, n, i) }, sg.prototype.eachRendered = function (t) { Vh(this.group, t) }, sg.markUpdateMethod = function (t, e) { rg(t).updateMethod = e }, sg.protoInitialize = void (sg.prototype.type = "chart"), sg); function sg() { this.group = new zr, this.uid = yc("viewChart"), this.renderTask = jd({ plan: hg, reset: cg }), this.renderTask.context = { view: this } } function lg(t, e, n) { t && Nl(t) && ("emphasis" === e ? vl : _l)(t, n) } function ug(e, t, n) { var i, r = So(e, t), o = t && null != t.highlightKey ? (t = t.highlightKey, i = null == (i = Hs[t]) && Vs <= 32 ? Hs[t] = Vs++ : i) : null; null != r ? O(co(r), function (t) { lg(e.getItemGraphicEl(t), n, o) }) : e.eachItemGraphicEl(function (t) { lg(t, n, o) }) } function hg(t) { return og(t.model) } function cg(t) { var e = t.model, n = t.ecModel, i = t.api, r = t.payload, o = e.pipelineContext.progressiveRender, t = t.view, a = r && rg(r).updateMethod, o = o ? "incrementalPrepareRender" : a && t[a] ? a : "render"; return "render" !== o && t[o](e, n, i, r), pg[o] } Eo(ag), Ho(ag); var pg = { incrementalPrepareRender: { progress: function (t, e) { e.view.incrementalRender(t, e.model, e.ecModel, e.api, e.payload) } }, render: { forceFirstProgress: !0, progress: function (t, e) { e.view.render(e.model, e.ecModel, e.api, e.payload) } } }; function dg(t, r, o) { var a, s, l, u, h, c = 0, p = 0, d = null; function f() { p = (new Date).getTime(), d = null, t.apply(l, u || []) } r = r || 0; function e() { for (var t = [], e = 0; e < arguments.length; e++)t[e] = arguments[e]; a = (new Date).getTime(), l = this, u = t; var n = h || r, i = h || o; h = null, s = a - (i ? c : p) - n, clearTimeout(d), i ? d = setTimeout(f, n) : 0 <= s ? f() : d = setTimeout(f, -s), c = a } return e.clear = function () { d && (clearTimeout(d), d = null) }, e.debounceNextCall = function (t) { h = t }, e } var fg = Mo(), gg = { itemStyle: Wo(lc, !0), lineStyle: Wo(rc, !0) }, yg = { lineStyle: "stroke", itemStyle: "fill" }; function mg(t, e) { return t.visualStyleMapper || gg[e] || (console.warn("Unknown style type '" + e + "'."), gg.itemStyle) } function vg(t, e) { return t.visualDrawType || yg[e] || (console.warn("Unknown style type '" + e + "'."), "fill") } var Uo = { createOnAllSeries: !0, performRawSeries: !0, reset: function (r, t) { var e = r.getData(), n = r.visualStyleAccessPath || "itemStyle", i = r.getModel(n), o = mg(r, n)(i), i = i.getShallow("decal"), a = (i && (e.setVisual("decal", i), i.dirty = !0), vg(r, n)), i = o[a], s = S(i) ? i : null, n = "auto" === o.fill || "auto" === o.stroke; if (o[a] && !s && !n || (i = r.getColorFromPalette(r.name, null, t.getSeriesCount()), o[a] || (o[a] = i, e.setVisual("colorFromPalette", !0)), o.fill = "auto" === o.fill || S(o.fill) ? i : o.fill, o.stroke = "auto" === o.stroke || S(o.stroke) ? i : o.stroke), e.setVisual("style", o), e.setVisual("drawType", a), !t.isSeriesFiltered(r) && s) return e.setVisual("colorFromPalette", !1), { dataEach: function (t, e) { var n = r.getDataParams(e), i = P({}, o); i[a] = s(n), t.setItemVisual(e, "style", i) } } } }, _g = new dc, nc = { createOnAllSeries: !0, performRawSeries: !0, reset: function (t, e) { var i, r, o; if (!t.ignoreStyleOnData && !e.isSeriesFiltered(t)) return e = t.getData(), i = t.visualStyleAccessPath || "itemStyle", r = mg(t, i), o = e.getVisual("drawType"), { dataEach: e.hasItemOption ? function (t, e) { var n = t.getRawDataItem(e); n && n[i] && (_g.option = n[i], n = r(_g), P(t.ensureUniqueItemVisual(e, "style"), n), _g.option.decal && (t.setItemVisual(e, "decal", _g.option.decal), _g.option.decal.dirty = !0), o in n) && t.setItemVisual(e, "colorFromPalette", !1) } : null } } }, Ic = { performRawSeries: !0, overallReset: function (e) { var i = E(); e.eachSeries(function (t) { var e, n = t.getColorBy(); t.isColorBySeries() || (n = t.type + "-" + n, (e = i.get(n)) || i.set(n, e = {}), fg(t).scope = e) }), e.eachSeries(function (i) { var r, o, a, s, t, l; i.isColorBySeries() || e.isSeriesFiltered(i) || (r = i.getRawData(), o = {}, a = i.getData(), s = fg(i).scope, t = i.visualStyleAccessPath || "itemStyle", l = vg(i, t), a.each(function (t) { var e = a.getRawIndex(t); o[e] = t }), r.each(function (t) { var e, n = o[t]; a.getItemVisual(n, "colorFromPalette") && (n = a.ensureUniqueItemVisual(n, "style"), t = r.getName(t) || t + "", e = r.count(), n[l] = i.getColorFromPalette(t, s, e)) })) }) } }, xg = Math.PI; bg.prototype.restoreData = function (t, e) { t.restoreData(e), this._stageTaskMap.each(function (t) { t = t.overallTask; t && t.dirty() }) }, bg.prototype.getPerformArgs = function (t, e) { var n, i; if (t.__pipeline) return i = (n = this._pipelineMap.get(t.__pipeline.id)).context, { step: e = !e && n.progressiveEnabled && (!i || i.progressiveRender) && t.__idxInPipeline > n.blockIndex ? n.step : null, modBy: null != (t = i && i.modDataCount) ? Math.ceil(t / e) : null, modDataCount: t } }, bg.prototype.getPipeline = function (t) { return this._pipelineMap.get(t) }, bg.prototype.updateStreamModes = function (t, e) { var n = this._pipelineMap.get(t.uid), i = t.getData().count(), e = n.progressiveEnabled && e.incrementalPrepareRender && i >= n.threshold, r = t.get("large") && i >= t.get("largeThreshold"), i = "mod" === t.get("progressiveChunkMode") ? i : null; t.pipelineContext = n.context = { progressiveRender: e, modDataCount: i, large: r } }, bg.prototype.restorePipelines = function (t) { var i = this, r = i._pipelineMap = E(); t.eachSeries(function (t) { var e = t.getProgressive(), n = t.uid; r.set(n, { id: n, head: null, tail: null, threshold: t.getProgressiveThreshold(), progressiveEnabled: e && !(t.preventIncremental && t.preventIncremental()), blockIndex: -1, step: Math.round(e || 700), count: 0 }), i._pipe(t, t.dataTask) }) }, bg.prototype.prepareStageTasks = function () { var n = this._stageTaskMap, i = this.api.getModel(), r = this.api; O(this._allHandlers, function (t) { var e = n.get(t.uid) || n.set(t.uid, {}); Tt(!(t.reset && t.overallReset), ""), t.reset && this._createSeriesStageTask(t, e, i, r), t.overallReset && this._createOverallStageTask(t, e, i, r) }, this) }, bg.prototype.prepareView = function (t, e, n, i) { var r = t.renderTask, o = r.context; o.model = e, o.ecModel = n, o.api = i, r.__block = !t.incrementalPrepareRender, this._pipe(e, r) }, bg.prototype.performDataProcessorTasks = function (t, e) { this._performStageTasks(this._dataProcessorHandlers, t, e, { block: !0 }) }, bg.prototype.performVisualTasks = function (t, e, n) { this._performStageTasks(this._visualHandlers, t, e, n) }, bg.prototype._performStageTasks = function (t, s, l, u) { u = u || {}; var h = !1, c = this; function p(t, e) { return t.setDirty && (!t.dirtyMap || t.dirtyMap.get(e.__pipeline.id)) } O(t, function (i, t) { var e, n, r, o, a; u.visualType && u.visualType !== i.visualType || (e = (n = c._stageTaskMap.get(i.uid)).seriesTaskMap, (n = n.overallTask) ? ((o = n.agentStubMap).each(function (t) { p(u, t) && (t.dirty(), r = !0) }), r && n.dirty(), c.updatePayload(n, l), a = c.getPerformArgs(n, u.block), o.each(function (t) { t.perform(a) }), n.perform(a) && (h = !0)) : e && e.each(function (t, e) { p(u, t) && t.dirty(); var n = c.getPerformArgs(t, u.block); n.skip = !i.performRawSeries && s.isSeriesFiltered(t.context.model), c.updatePayload(t, l), t.perform(n) && (h = !0) })) }), this.unfinished = h || this.unfinished }, bg.prototype.performSeriesTasks = function (t) { var e; t.eachSeries(function (t) { e = t.dataTask.perform() || e }), this.unfinished = e || this.unfinished }, bg.prototype.plan = function () { this._pipelineMap.each(function (t) { var e = t.tail; do { if (e.__block) { t.blockIndex = e.__idxInPipeline; break } } while (e = e.getUpstream()) }) }, bg.prototype.updatePayload = function (t, e) { "remain" !== e && (t.context.payload = e) }, bg.prototype._createSeriesStageTask = function (n, t, i, r) { var o = this, a = t.seriesTaskMap, s = t.seriesTaskMap = E(), t = n.seriesType, e = n.getTargetSeries; function l(t) { var e = t.uid, e = s.set(e, a && a.get(e) || jd({ plan: kg, reset: Dg, count: Lg })); e.context = { model: t, ecModel: i, api: r, useClearVisual: n.isVisual && !n.isLayout, plan: n.plan, reset: n.reset, scheduler: o }, o._pipe(t, e) } n.createOnAllSeries ? i.eachRawSeries(l) : t ? i.eachRawSeriesByType(t, l) : e && e(i, r).each(l) }, bg.prototype._createOverallStageTask = function (t, e, n, i) { var r = this, o = e.overallTask = e.overallTask || jd({ reset: Sg }), a = (o.context = { ecModel: n, api: i, overallReset: t.overallReset, scheduler: r }, o.agentStubMap), s = o.agentStubMap = E(), e = t.seriesType, l = t.getTargetSeries, u = !0, h = !1; function c(t) { var e = t.uid, e = s.set(e, a && a.get(e) || (h = !0, jd({ reset: Mg, onDirty: Cg }))); e.context = { model: t, overallProgress: u }, e.agent = o, e.__block = u, r._pipe(t, e) } Tt(!t.createOnAllSeries, ""), e ? n.eachRawSeriesByType(e, c) : l ? l(n, i).each(c) : (u = !1, O(n.getSeries(), c)), h && o.dirty() }, bg.prototype._pipe = function (t, e) { t = t.uid, t = this._pipelineMap.get(t); t.head || (t.head = e), t.tail && t.tail.pipe(e), (t.tail = e).__idxInPipeline = t.count++, e.__pipeline = t }, bg.wrapStageHandler = function (t, e) { return (t = S(t) ? { overallReset: t, seriesType: function (t) { Pg = null; try { t(Og, Rg) } catch (t) { } return Pg }(t) } : t).uid = yc("stageHandler"), e && (t.visualType = e), t }; var wg = bg; function bg(t, e, n, i) { this._stageTaskMap = E(), this.ecInstance = t, this.api = e, n = this._dataProcessorHandlers = n.slice(), i = this._visualHandlers = i.slice(), this._allHandlers = n.concat(i) } function Sg(t) { t.overallReset(t.ecModel, t.api, t.payload) } function Mg(t) { return t.overallProgress && Tg } function Tg() { this.agent.dirty(), this.getDownstream().dirty() } function Cg() { this.agent && this.agent.dirty() } function kg(t) { return t.plan ? t.plan(t.model, t.ecModel, t.api, t.payload) : null } function Dg(t) { t.useClearVisual && t.data.clearAllVisual(); t = t.resetDefines = co(t.reset(t.model, t.ecModel, t.api, t.payload)); return 1 < t.length ? F(t, function (t, e) { return Ag(e) }) : Ig } var Ig = Ag(0); function Ag(o) { return function (t, e) { var n = e.data, i = e.resetDefines[o]; if (i && i.dataEach) for (var r = t.start; r < t.end; r++)i.dataEach(n, r); else i && i.progress && i.progress(t, n) } } function Lg(t) { return t.data.count() } var Pg, Og = {}, Rg = {}; function Ng(t, e) { for (var n in e.prototype) t[n] = Ft } Ng(Og, Wp), Ng(Rg, Yp), Og.eachSeriesByType = Og.eachRawSeriesByType = function (t) { Pg = t }, Og.eachComponent = function (t) { "series" === t.mainType && t.subType && (Pg = t.subType) }; function Eg() { return { axisLine: { lineStyle: { color: zg } }, splitLine: { lineStyle: { color: "#484753" } }, splitArea: { areaStyle: { color: ["rgba(255,255,255,0.02)", "rgba(255,255,255,0.05)"] } }, minorSplitLine: { lineStyle: { color: "#20203B" } } } } var ac = ["#37A2DA", "#32C5E9", "#67E0E3", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#E062AE", "#E690D1", "#e7bcf3", "#9d96f5", "#8378EA", "#96BFFF"], hc = { color: ac, colorLayer: [["#37A2DA", "#ffd85c", "#fd7b5f"], ["#37A2DA", "#67E0E3", "#FFDB5C", "#ff9f7f", "#E062AE", "#9d96f5"], ["#37A2DA", "#32C5E9", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#e7bcf3", "#8378EA", "#96BFFF"], ac] }, zg = "#B9B8CE", lc = "#100C2A", rc = ["#4992ff", "#7cffb2", "#fddd60", "#ff6e76", "#58d9f9", "#05c091", "#ff8a45", "#8d48e3", "#dd79ff"], ac = { darkMode: !0, color: rc, backgroundColor: lc, axisPointer: { lineStyle: { color: "#817f91" }, crossStyle: { color: "#817f91" }, label: { color: "#fff" } }, legend: { textStyle: { color: zg } }, textStyle: { color: zg }, title: { textStyle: { color: "#EEF1FA" }, subtextStyle: { color: "#B9B8CE" } }, toolbox: { iconStyle: { borderColor: zg } }, dataZoom: { borderColor: "#71708A", textStyle: { color: zg }, brushStyle: { color: "rgba(135,163,206,0.3)" }, handleStyle: { color: "#353450", borderColor: "#C5CBE3" }, moveHandleStyle: { color: "#B0B6C3", opacity: .3 }, fillerColor: "rgba(135,163,206,0.2)", emphasis: { handleStyle: { borderColor: "#91B7F2", color: "#4D587D" }, moveHandleStyle: { color: "#636D9A", opacity: .7 } }, dataBackground: { lineStyle: { color: "#71708A", width: 1 }, areaStyle: { color: "#71708A" } }, selectedDataBackground: { lineStyle: { color: "#87A3CE" }, areaStyle: { color: "#87A3CE" } } }, visualMap: { textStyle: { color: zg } }, timeline: { lineStyle: { color: zg }, label: { color: zg }, controlStyle: { color: zg, borderColor: zg } }, calendar: { itemStyle: { color: lc }, dayLabel: { color: zg }, monthLabel: { color: zg }, yearLabel: { color: zg } }, timeAxis: Eg(), logAxis: Eg(), valueAxis: Eg(), categoryAxis: Eg(), line: { symbol: "circle" }, graph: { color: rc }, gauge: { title: { color: zg }, axisLine: { lineStyle: { color: [[1, "rgba(207,212,219,0.2)"]] } }, axisLabel: { color: zg }, detail: { color: "#EEF1FA" } }, candlestick: { itemStyle: { color: "#f64e56", color0: "#54ea92", borderColor: "#f64e56", borderColor0: "#54ea92" } } }, Bg = (ac.categoryAxis.splitLine.show = !1, Fg.prototype.normalizeQuery = function (t) { var e, a, s, l = {}, u = {}, h = {}; return H(t) ? (e = No(t), l.mainType = e.main || null, l.subType = e.sub || null) : (a = ["Index", "Name", "Id"], s = { name: 1, dataIndex: 1, dataType: 1 }, O(t, function (t, e) { for (var n = !1, i = 0; i < a.length; i++) { var r = a[i], o = e.lastIndexOf(r); 0 < o && o === e.length - r.length && "data" !== (o = e.slice(0, o)) && (l.mainType = o, l[r.toLowerCase()] = t, n = !0) } s.hasOwnProperty(e) && (u[e] = t, n = !0), n || (h[e] = t) })), { cptQuery: l, dataQuery: u, otherQuery: h } }, Fg.prototype.filter = function (t, e) { var n, i, r, o, a, s = this.eventInfo; return !s || (n = s.targetEl, i = s.packedEvent, r = s.model, s = s.view, !r) || !s || (o = e.cptQuery, a = e.dataQuery, l(o, r, "mainType") && l(o, r, "subType") && l(o, r, "index", "componentIndex") && l(o, r, "name") && l(o, r, "id") && l(a, i, "name") && l(a, i, "dataIndex") && l(a, i, "dataType") && (!s.filterForExposedEvent || s.filterForExposedEvent(t, e.otherQuery, n, i))); function l(t, e, n, i) { return null == t[n] || e[i || n] === t[n] } }, Fg.prototype.afterTrigger = function () { this.eventInfo = null }, Fg); function Fg() { } var Vg = ["symbol", "symbolSize", "symbolRotate", "symbolOffset"], Hg = Vg.concat(["symbolKeepAspect"]), lc = { createOnAllSeries: !0, performRawSeries: !0, reset: function (a, t) { var e = a.getData(); if (a.legendIcon && e.setVisual("legendIcon", a.legendIcon), a.hasSymbolVisual) { for (var s, n = {}, l = {}, i = !1, r = 0; r < Vg.length; r++) { var o = Vg[r], u = a.get(o); S(u) ? (i = !0, l[o] = u) : n[o] = u } if (n.symbol = n.symbol || a.defaultSymbol, e.setVisual(P({ legendIcon: a.legendIcon || n.symbol, symbolKeepAspect: a.get("symbolKeepAspect") }, n)), !t.isSeriesFiltered(a)) return s = D(l), { dataEach: i ? function (t, e) { for (var n = a.getRawValue(e), i = a.getDataParams(e), r = 0; r < s.length; r++) { var o = s[r]; t.setItemVisual(e, o, l[o](n, i)) } } : null } } } }, rc = { createOnAllSeries: !0, performRawSeries: !0, reset: function (t, e) { if (t.hasSymbolVisual && !e.isSeriesFiltered(t)) return { dataEach: t.getData().hasItemOption ? function (t, e) { for (var n = t.getItemModel(e), i = 0; i < Hg.length; i++) { var r = Hg[i], o = n.getShallow(r, !0); null != o && t.setItemVisual(e, r, o) } } : null } } }; function Wg(t, e, s, n, l) { var u = t + e; s.isSilent(u) || n.eachComponent({ mainType: "series", subType: "pie" }, function (t) { for (var e, n, i = t.seriesIndex, r = t.option.selectedMap, o = l.selected, a = 0; a < o.length; a++)o[a].seriesIndex === i && (n = So(e = t.getData(), l.fromActionPayload), s.trigger(u, { type: u, seriesId: t.id, name: V(n) ? e.getName(n[0]) : e.getName(n), selected: H(r) ? r : P({}, r) })) }) } function Gg(t, e, n) { for (var i; t && (!e(t) || (i = t, !n));)t = t.__hostTarget || t.parent; return i } var Ug = Math.round(9 * Math.random()), Xg = "function" == typeof Object.defineProperty, Yg = (qg.prototype.get = function (t) { return this._guard(t)[this._id] }, qg.prototype.set = function (t, e) { t = this._guard(t); return Xg ? Object.defineProperty(t, this._id, { value: e, enumerable: !1, configurable: !0 }) : t[this._id] = e, this }, qg.prototype.delete = function (t) { return !!this.has(t) && (delete this._guard(t)[this._id], !0) }, qg.prototype.has = function (t) { return !!this._guard(t)[this._id] }, qg.prototype._guard = function (t) { if (t !== Object(t)) throw TypeError("Value of WeakMap is not a non-null object."); return t }, qg); function qg() { this._id = "__ec_inner_" + Ug++ } var Zg = as.extend({ type: "triangle", shape: { cx: 0, cy: 0, width: 0, height: 0 }, buildPath: function (t, e) { var n = e.cx, i = e.cy, r = e.width / 2, e = e.height / 2; t.moveTo(n, i - e), t.lineTo(n + r, i + e), t.lineTo(n - r, i + e), t.closePath() } }), jg = as.extend({ type: "diamond", shape: { cx: 0, cy: 0, width: 0, height: 0 }, buildPath: function (t, e) { var n = e.cx, i = e.cy, r = e.width / 2, e = e.height / 2; t.moveTo(n, i - e), t.lineTo(n + r, i), t.lineTo(n, i + e), t.lineTo(n - r, i), t.closePath() } }), Kg = as.extend({ type: "pin", shape: { x: 0, y: 0, width: 0, height: 0 }, buildPath: function (t, e) { var n = e.x, i = e.y, r = e.width / 5 * 3, e = Math.max(r, e.height), r = r / 2, o = r * r / (e - r), e = i - e + r + o, a = Math.asin(o / r), s = Math.cos(a) * r, l = Math.sin(a), u = Math.cos(a), h = .6 * r, c = .7 * r; t.moveTo(n - s, e + o), t.arc(n, e, r, Math.PI - a, 2 * Math.PI + a), t.bezierCurveTo(n + s - l * h, e + o + u * h, n, i - c, n, i), t.bezierCurveTo(n, i - c, n - s + l * h, e + o + u * h, n - s, e + o), t.closePath() } }), $g = as.extend({ type: "arrow", shape: { x: 0, y: 0, width: 0, height: 0 }, buildPath: function (t, e) { var n = e.height, i = e.width, r = e.x, e = e.y, i = i / 3 * 2; t.moveTo(r, e), t.lineTo(r + i, e + n), t.lineTo(r, e + n / 4 * 3), t.lineTo(r - i, e + n), t.lineTo(r, e), t.closePath() } }), Qg = { line: function (t, e, n, i, r) { r.x1 = t, r.y1 = e + i / 2, r.x2 = t + n, r.y2 = e + i / 2 }, rect: function (t, e, n, i, r) { r.x = t, r.y = e, r.width = n, r.height = i }, roundRect: function (t, e, n, i, r) { r.x = t, r.y = e, r.width = n, r.height = i, r.r = Math.min(n, i) / 4 }, square: function (t, e, n, i, r) { n = Math.min(n, i); r.x = t, r.y = e, r.width = n, r.height = n }, circle: function (t, e, n, i, r) { r.cx = t + n / 2, r.cy = e + i / 2, r.r = Math.min(n, i) / 2 }, diamond: function (t, e, n, i, r) { r.cx = t + n / 2, r.cy = e + i / 2, r.width = n, r.height = i }, pin: function (t, e, n, i, r) { r.x = t + n / 2, r.y = e + i / 2, r.width = n, r.height = i }, arrow: function (t, e, n, i, r) { r.x = t + n / 2, r.y = e + i / 2, r.width = n, r.height = i }, triangle: function (t, e, n, i, r) { r.cx = t + n / 2, r.cy = e + i / 2, r.width = n, r.height = i } }, Jg = {}, ty = (O({ line: Uu, rect: bs, roundRect: bs, square: bs, circle: ou, diamond: jg, pin: Kg, arrow: $g, triangle: Zg }, function (t, e) { Jg[e] = new t }), as.extend({ type: "symbol", shape: { symbolType: "", x: 0, y: 0, width: 0, height: 0 }, calculateTextPosition: function (t, e, n) { var t = Mr(t, e, n), i = this.shape; return i && "pin" === i.symbolType && "inside" === e.position && (t.y = n.y + .4 * n.height), t }, buildPath: function (t, e, n) { var i, r = e.symbolType; "none" !== r && (i = (i = Jg[r]) || Jg[r = "rect"], Qg[r](e.x, e.y, e.width, e.height, i.shape), i.buildPath(t, i.shape, n)) } })); function ey(t, e) { var n; "image" !== this.type && (n = this.style, this.__isEmptyBrush ? (n.stroke = t, n.fill = e || "#fff", n.lineWidth = 2) : "line" === this.shape.symbolType ? n.stroke = t : n.fill = t, this.markRedraw()) } function ny(t, e, n, i, r, o, a) { var s = 0 === t.indexOf("empty"); return (a = 0 === (t = s ? t.substr(5, 1).toLowerCase() + t.substr(6) : t).indexOf("image://") ? Oh(t.slice(8), new z(e, n, i, r), a ? "center" : "cover") : 0 === t.indexOf("path://") ? Ph(t.slice(7), {}, new z(e, n, i, r), a ? "center" : "cover") : new ty({ shape: { symbolType: t, x: e, y: n, width: i, height: r } })).__isEmptyBrush = s, a.setColor = ey, o && a.setColor(o), a } function iy(t, e) { if (null != t) return [qr((t = V(t) ? t : [t, t])[0], e[0]) || 0, qr(N(t[1], t[0]), e[1]) || 0] } function ry(t) { return isFinite(t) } function oy(t, e, n) { for (var i, r, o, a, s, l, u, h, c, p = "radial" === e.type ? (i = t, r = e, a = (o = n).width, s = o.height, l = Math.min(a, s), u = null == r.x ? .5 : r.x, h = null == r.y ? .5 : r.y, c = null == r.r ? .5 : r.r, r.global || (u = u * a + o.x, h = h * s + o.y, c *= l), u = ry(u) ? u : .5, h = ry(h) ? h : .5, c = 0 <= c && ry(c) ? c : .5, i.createRadialGradient(u, h, 0, u, h, c)) : (r = t, a = n, o = null == (s = e).x ? 0 : s.x, l = null == s.x2 ? 1 : s.x2, i = null == s.y ? 0 : s.y, u = null == s.y2 ? 0 : s.y2, s.global || (o = o * a.width + a.x, l = l * a.width + a.x, i = i * a.height + a.y, u = u * a.height + a.y), o = ry(o) ? o : 0, l = ry(l) ? l : 1, i = ry(i) ? i : 0, u = ry(u) ? u : 0, r.createLinearGradient(o, i, l, u)), d = e.colorStops, f = 0; f < d.length; f++)p.addColorStop(d[f].offset, d[f].color); return p } function ay(t) { return parseInt(t, 10) } function sy(t, e, n) { var i = ["width", "height"][e], r = ["clientWidth", "clientHeight"][e], o = ["paddingLeft", "paddingTop"][e], e = ["paddingRight", "paddingBottom"][e]; return null != n[i] && "auto" !== n[i] ? parseFloat(n[i]) : (n = document.defaultView.getComputedStyle(t), (t[r] || ay(n[i]) || ay(t.style[i])) - (ay(n[o]) || 0) - (ay(n[e]) || 0) | 0) } function ly(t) { var e, n = t.style, i = n.lineDash && 0 < n.lineWidth && (r = n.lineDash, i = n.lineWidth, r && "solid" !== r && 0 < i ? "dashed" === r ? [4 * i, 2 * i] : "dotted" === r ? [i] : dt(r) ? [r] : V(r) ? r : null : null), r = n.lineDashOffset; return i && (e = n.strokeNoScale && t.getLineScale ? t.getLineScale() : 1) && 1 !== e && (i = F(i, function (t) { return t / e }), r /= e), [i, r] } var uy = new Wa(!0); function hy(t) { var e = t.stroke; return !(null == e || "none" === e || !(0 < t.lineWidth)) } function cy(t) { return "string" == typeof t && "none" !== t } function py(t) { t = t.fill; return null != t && "none" !== t } function dy(t, e) { var n; null != e.fillOpacity && 1 !== e.fillOpacity ? (n = t.globalAlpha, t.globalAlpha = e.fillOpacity * e.opacity, t.fill(), t.globalAlpha = n) : t.fill() } function fy(t, e) { var n; null != e.strokeOpacity && 1 !== e.strokeOpacity ? (n = t.globalAlpha, t.globalAlpha = e.strokeOpacity * e.opacity, t.stroke(), t.globalAlpha = n) : t.stroke() } function gy(t, e, n) { var n = qo(e.image, e.__image, n); if (jo(n)) return t = t.createPattern(n, e.repeat || "repeat"), "function" == typeof DOMMatrix && t && t.setTransform && ((n = new DOMMatrix).translateSelf(e.x || 0, e.y || 0), n.rotateSelf(0, 0, (e.rotation || 0) * Vt), n.scaleSelf(e.scaleX || 1, e.scaleY || 1), t.setTransform(n)), t } var yy = ["shadowBlur", "shadowOffsetX", "shadowOffsetY"], my = [["lineCap", "butt"], ["lineJoin", "miter"], ["miterLimit", 10]]; function vy(t, e, n, i, r) { var o, a = !1; if (!i && e === (n = n || {})) return !1; !i && e.opacity === n.opacity || (Ty(t, r), a = !0, o = Math.max(Math.min(e.opacity, 1), 0), t.globalAlpha = isNaN(o) ? ua.opacity : o), !i && e.blend === n.blend || (a || (Ty(t, r), a = !0), t.globalCompositeOperation = e.blend || ua.blend); for (var s = 0; s < yy.length; s++) { var l = yy[s]; !i && e[l] === n[l] || (a || (Ty(t, r), a = !0), t[l] = t.dpr * (e[l] || 0)) } return !i && e.shadowColor === n.shadowColor || (a || (Ty(t, r), a = !0), t.shadowColor = e.shadowColor || ua.shadowColor), a } function _y(t, e, n, i, r) { var o = Cy(e, r.inHover), a = i ? null : n && Cy(n, r.inHover) || {}; if (o !== a) { var s = vy(t, o, a, i, r); (i || o.fill !== a.fill) && (s || (Ty(t, r), s = !0), cy(o.fill)) && (t.fillStyle = o.fill), (i || o.stroke !== a.stroke) && (s || (Ty(t, r), s = !0), cy(o.stroke)) && (t.strokeStyle = o.stroke), !i && o.opacity === a.opacity || (s || (Ty(t, r), s = !0), t.globalAlpha = null == o.opacity ? 1 : o.opacity), e.hasStroke() && (n = o.lineWidth / (o.strokeNoScale && e.getLineScale ? e.getLineScale() : 1), t.lineWidth !== n) && (s || (Ty(t, r), s = !0), t.lineWidth = n); for (var l = 0; l < my.length; l++) { var u = my[l], h = u[0]; !i && o[h] === a[h] || (s || (Ty(t, r), s = !0), t[h] = o[h] || u[1]) } } } function xy(t, e) { var e = e.transform, n = t.dpr || 1; e ? t.setTransform(n * e[0], n * e[1], n * e[2], n * e[3], n * e[4], n * e[5]) : t.setTransform(n, 0, 0, n, 0, 0) } var wy = 1, by = 2, Sy = 3, My = 4; function Ty(t, e) { e.batchFill && t.fill(), e.batchStroke && t.stroke(), e.batchFill = "", e.batchStroke = "" } function Cy(t, e) { return e && t.__hoverStyle || t.style } function ky(t, e) { Dy(t, e, { inHover: !1, viewWidth: 0, viewHeight: 0 }, !0) } function Dy(t, e, n, E) { var i = e.transform; if (!e.shouldBePainted(n.viewWidth, n.viewHeight, !1, !1)) return e.__dirty &= ~yn, e.__isRendered = !1; var r, o, a, s, l, u, h, c, p, d, f, g, y, m, v, _, x, w, b, S, M, T, C, k = e.__clipPaths, D = n.prevElClipPaths, I = !1, A = !1; if (!D || function (t, e) { if (t !== e && (t || e)) { if (!t || !e || t.length !== e.length) return 1; for (var n = 0; n < t.length; n++)if (t[n] !== e[n]) return 1 } }(k, D)) { if (D && D.length && (Ty(t, n), t.restore(), A = I = !0, n.prevElClipPaths = null, n.allClipped = !1, n.prevEl = null), k && k.length) { Ty(t, n), t.save(); var z = k, B = t; D = n; for (var F = !1, V = 0; V < z.length; V++) { var H = z[V], F = F || H.isZeroArea(); xy(B, H), B.beginPath(), H.buildPath(B, H.shape), B.clip() } D.allClipped = F, I = !0 } n.prevElClipPaths = k } if (n.allClipped) e.__isRendered = !1; else { e.beforeBrush && e.beforeBrush(), e.innerBeforeBrush(); var D = n.prevEl, L = (D || (A = I = !0), e instanceof as && e.autoBatch && (k = e.style, L = py(k), C = hy(k), !(k.lineDash || !(+L ^ +C) || L && "string" != typeof k.fill || C && "string" != typeof k.stroke || k.strokePercent < 1 || k.strokeOpacity < 1 || k.fillOpacity < 1))), I = (I || (C = i, k = D.transform, C && k ? C[0] !== k[0] || C[1] !== k[1] || C[2] !== k[2] || C[3] !== k[3] || C[4] !== k[4] || C[5] !== k[5] : C || k) ? (Ty(t, n), xy(t, e)) : L || Ty(t, n), Cy(e, n.inHover)); if (e instanceof as) n.lastDrawType !== wy && (A = !0, n.lastDrawType = wy), _y(t, e, D, A, n), L && (n.batchFill || n.batchStroke) || t.beginPath(), i = t, k = e, O = L, y = hy(a = I), m = py(a), v = a.strokePercent, _ = v < 1, x = !k.path, k.silent && !_ || !x || k.createPathProxy(), w = k.path || uy, b = k.__dirty, O || (s = a.fill, T = a.stroke, l = m && !!s.colorStops, u = y && !!T.colorStops, h = m && !!s.image, c = y && !!T.image, M = g = f = d = p = void 0, (l || u) && (M = k.getBoundingRect()), l && (p = b ? oy(i, s, M) : k.__canvasFillGradient, k.__canvasFillGradient = p), u && (d = b ? oy(i, T, M) : k.__canvasStrokeGradient, k.__canvasStrokeGradient = d), h && (f = b || !k.__canvasFillPattern ? gy(i, s, k) : k.__canvasFillPattern, k.__canvasFillPattern = f), c && (g = b || !k.__canvasStrokePattern ? gy(i, T, k) : k.__canvasStrokePattern, k.__canvasStrokePattern = f), l ? i.fillStyle = p : h && (f ? i.fillStyle = f : m = !1), u ? i.strokeStyle = d : c && (g ? i.strokeStyle = g : y = !1)), M = k.getGlobalScale(), w.setScale(M[0], M[1], k.segmentIgnoreThreshold), i.setLineDash && a.lineDash && (S = (s = ly(k))[0], P = s[1]), T = !0, (x || b & mn) && (w.setDPR(i.dpr), _ ? w.setContext(null) : (w.setContext(i), T = !1), w.reset(), k.buildPath(w, k.shape, O), w.toStatic(), k.pathUpdated()), T && w.rebuildPath(i, _ ? v : 1), S && (i.setLineDash(S), i.lineDashOffset = P), O || (a.strokeFirst ? (y && fy(i, a), m && dy(i, a)) : (m && dy(i, a), y && fy(i, a))), S && i.setLineDash([]), L && (n.batchFill = I.fill || "", n.batchStroke = I.stroke || ""); else if (e instanceof us) n.lastDrawType !== Sy && (A = !0, n.lastDrawType = Sy), _y(t, e, D, A, n), l = t, p = e, null != (f = (h = I).text) && (f += ""), f && (l.font = h.font || j, l.textAlign = h.textAlign, l.textBaseline = h.textBaseline, d = u = void 0, l.setLineDash && h.lineDash && (u = (p = ly(p))[0], d = p[1]), u && (l.setLineDash(u), l.lineDashOffset = d), h.strokeFirst ? (hy(h) && l.strokeText(f, h.x, h.y), py(h) && l.fillText(f, h.x, h.y)) : (py(h) && l.fillText(f, h.x, h.y), hy(h) && l.strokeText(f, h.x, h.y)), u) && l.setLineDash([]); else if (e instanceof fs) n.lastDrawType !== by && (A = !0, n.lastDrawType = by), c = D, g = A, vy(t, Cy(e, (M = n).inHover), c && Cy(c, M.inHover), g, M), s = t, x = I, (k = (b = e).__image = qo(x.image, b.__image, b, b.onload)) && jo(k) && (T = x.x || 0, w = x.y || 0, _ = b.getWidth(), b = b.getHeight(), v = k.width / k.height, null == _ && null != b ? _ = b * v : null == b && null != _ ? b = _ / v : null == _ && null == b && (_ = k.width, b = k.height), x.sWidth && x.sHeight ? (r = x.sx || 0, o = x.sy || 0, s.drawImage(k, r, o, x.sWidth, x.sHeight, T, w, _, b)) : x.sx && x.sy ? (v = _ - (r = x.sx), x = b - (o = x.sy), s.drawImage(k, r, o, v, x, T, w, _, b)) : s.drawImage(k, T, w, _, b)); else if (e.getTemporalDisplayables) { n.lastDrawType !== My && (A = !0, n.lastDrawType = My); { var W = t; var P = e; var O = n; var G = P.getDisplayables(), U = P.getTemporalDisplayables(); W.save(); var R, X, Y = { prevElClipPaths: null, prevEl: null, allClipped: !1, viewWidth: O.viewWidth, viewHeight: O.viewHeight, inHover: O.inHover }; for (R = P.getCursor(), X = G.length; R < X; R++)(N = G[R]).beforeBrush && N.beforeBrush(), N.innerBeforeBrush(), Dy(W, N, Y, R === X - 1), N.innerAfterBrush(), N.afterBrush && N.afterBrush(), Y.prevEl = N; for (var N, q = 0, Z = U.length; q < Z; q++)(N = U[q]).beforeBrush && N.beforeBrush(), N.innerBeforeBrush(), Dy(W, N, Y, q === Z - 1), N.innerAfterBrush(), N.afterBrush && N.afterBrush(), Y.prevEl = N; P.clearTemporalDisplayables(), P.notClear = !0, W.restore() } } L && E && Ty(t, n), e.innerAfterBrush(), e.afterBrush && e.afterBrush(), (n.prevEl = e).__dirty = 0, e.__isRendered = !0 } } var Iy = new Yg, Ay = new Jn(100), Ly = ["symbol", "symbolSize", "symbolKeepAspect", "color", "backgroundColor", "dashArrayX", "dashArrayY", "maxTileWidth", "maxTileHeight"]; function Py(t, e) { if ("none" === t) return null; var n = e.getDevicePixelRatio(), i = e.getZr(), r = "svg" === i.painter.type, e = (t.dirty && Iy.delete(t), Iy.get(t)); if (e) return e; for (var o, a = B(t, { symbol: "rect", symbolSize: 1, symbolKeepAspect: !0, color: "rgba(0, 0, 0, 0.2)", backgroundColor: null, dashArrayX: 5, dashArrayY: 5, rotation: 0, maxTileWidth: 512, maxTileHeight: 512 }), e = ("none" === a.backgroundColor && (a.backgroundColor = null), { repeat: "repeat" }), s = e, l = [n], u = !0, h = 0; h < Ly.length; ++h) { var c = a[Ly[h]]; if (null != c && !V(c) && !H(c) && !dt(c) && "boolean" != typeof c) { u = !1; break } l.push(c) } u && (o = l.join(",") + (r ? "-svg" : ""), v = Ay.get(o)) && (r ? s.svgElement = v : s.image = v); var p, d = function t(e) { if (!e || 0 === e.length) return [[0, 0]]; if (dt(e)) return [[o = Math.ceil(e), o]]; for (var n = !0, i = 0; i < e.length; ++i)if (!dt(e[i])) { n = !1; break } if (n) return t([e]); var r = []; for (i = 0; i < e.length; ++i) { var o; dt(e[i]) ? (o = Math.ceil(e[i]), r.push([o, o])) : (o = F(e[i], function (t) { return Math.ceil(t) })).length % 2 == 1 ? r.push(o.concat(o)) : r.push(o) } return r }(a.dashArrayX), f = function (t) { if (!t || "object" == typeof t && 0 === t.length) return [0, 0]; if (dt(t)) return [e = Math.ceil(t), e]; var e = F(t, function (t) { return Math.ceil(t) }); return t.length % 2 ? e.concat(e) : e }(a.dashArrayY), g = function t(e) { if (!e || 0 === e.length) return [["rect"]]; if (H(e)) return [[e]]; for (var n = !0, i = 0; i < e.length; ++i)if (!H(e[i])) { n = !1; break } if (n) return t([e]); var r = []; for (i = 0; i < e.length; ++i)H(e[i]) ? r.push([e[i]]) : r.push(e[i]); return r }(a.symbol), y = F(d, Oy), m = Oy(f), v = !r && W.createCanvas(), _ = r && { tag: "g", attrs: {}, key: "dcl", children: [] }, x = function () { for (var t = 1, e = 0, n = y.length; e < n; ++e)t = so(t, y[e]); for (var i = 1, e = 0, n = g.length; e < n; ++e)i = so(i, g[e].length); t *= i; var r = m * y.length * g.length; return { width: Math.max(1, Math.min(t, a.maxTileWidth)), height: Math.max(1, Math.min(r, a.maxTileHeight)) } }(); v && (v.width = x.width * n, v.height = x.height * n, p = v.getContext("2d")), p && (p.clearRect(0, 0, v.width, v.height), a.backgroundColor) && (p.fillStyle = a.backgroundColor, p.fillRect(0, 0, v.width, v.height)); for (var w = 0, b = 0; b < f.length; ++b)w += f[b]; if (!(w <= 0)) for (var S, M = -m, T = 0, C = 0, k = 0; M < x.height;) { if (T % 2 == 0) { for (var D = C / 2 % g.length, I = 0, A = 0, L = 0; I < 2 * x.width;) { for (var P, O, R, E, N, z = 0, b = 0; b < d[k].length; ++b)z += d[k][b]; if (z <= 0) break; A % 2 == 0 && (O = .5 * (1 - a.symbolSize), P = I + d[k][A] * O, O = M + f[T] * O, R = d[k][A] * a.symbolSize, E = f[T] * a.symbolSize, N = L / 2 % g[D].length, P = P, N = g[D][N], S = void 0, N = ny(N, P * (S = r ? 1 : n), O * S, R * S, E * S, a.color, a.symbolKeepAspect), r ? (P = i.painter.renderOneToVNode(N)) && _.children.push(P) : ky(p, N)), I += d[k][A], ++L, ++A === d[k].length && (A = 0) } ++k === d.length && (k = 0) } M += f[T], ++C, ++T === f.length && (T = 0) } return u && Ay.put(o, v || _), s.image = v, s.svgElement = _, s.svgWidth = x.width, s.svgHeight = x.height, e.rotation = a.rotation, e.scaleX = e.scaleY = r ? 1 : 1 / n, Iy.set(t, e), t.dirty = !1, e } function Oy(t) { for (var e = 0, n = 0; n < t.length; ++n)e += t[n]; return t.length % 2 == 1 ? 2 * e : e } var Ry = new le, Ny = {}; var jg = { PROCESSOR: { FILTER: 1e3, SERIES_FILTER: 800, STATISTIC: 5e3 }, VISUAL: { LAYOUT: 1e3, PROGRESSIVE_LAYOUT: 1100, GLOBAL: 2e3, CHART: 3e3, POST_CHART_LAYOUT: 4600, COMPONENT: 4e3, BRUSH: 5e3, CHART_ITEM: 4500, ARIA: 6e3, DECAL: 7e3 } }, Ey = "__flagInMainProcess", zy = "__pendingUpdate", By = "__needsUpdateStatus", Fy = /^[a-zA-Z0-9_]+$/, Vy = "__connectUpdateStatus"; function Hy(n) { return function () { for (var t = [], e = 0; e < arguments.length; e++)t[e] = arguments[e]; if (!this.isDisposed()) return Gy(this, n, t); this.id } } function Wy(n) { return function () { for (var t = [], e = 0; e < arguments.length; e++)t[e] = arguments[e]; return Gy(this, n, t) } } function Gy(t, e, n) { return n[0] = n[0] && n[0].toLowerCase(), le.prototype[e].apply(t, n) } u(h0, l0 = le); var Uy, Xy, Yy, qy, Zy, jy, Ky, $y, Qy, Jy, t0, e0, n0, i0, r0, o0, a0, s0, l0, u0 = h0, Kg = u0.prototype; function h0() { return null !== l0 && l0.apply(this, arguments) || this } Kg.on = Wy("on"), Kg.off = Wy("off"); u(v, c0 = le), v.prototype._onframe = function () { if (!this._disposed) { s0(this); var t = this._scheduler; if (this[zy]) { var e = this[zy].silent; this[Ey] = !0; try { Uy(this), qy.update.call(this, null, this[zy].updateParams) } catch (t) { throw this[Ey] = !1, this[zy] = null, t } this._zr.flush(), this[Ey] = !1, this[zy] = null, $y.call(this, e), Qy.call(this, e) } else if (t.unfinished) { var n = 1, i = this._model, r = this._api; t.unfinished = !1; do { var o = +new Date } while (t.performSeriesTasks(i), t.performDataProcessorTasks(i), jy(this, i), t.performVisualTasks(i), i0(this, this._model, r, "remain", {}), 0 < (n -= +new Date - o) && t.unfinished); t.unfinished || this._zr.flush() } } }, v.prototype.getDom = function () { return this._dom }, v.prototype.getId = function () { return this.id }, v.prototype.getZr = function () { return this._zr }, v.prototype.isSSR = function () { return this._ssr }, v.prototype.setOption = function (t, e, n) { if (!this[Ey]) if (this._disposed) this.id; else { R(e) && (n = e.lazyUpdate, i = e.silent, r = e.replaceMerge, o = e.transition, e = e.notMerge), this[Ey] = !0, this._model && !e || (e = new Qp(this._api), a = this._theme, (s = this._model = new Wp).scheduler = this._scheduler, s.ssr = this._ssr, s.init(null, null, null, a, this._locale, e)), this._model.setOption(t, { replaceMerge: r }, b0); var i, r, o, a, s = { seriesTransition: o, optionChanged: !0 }; if (n) this[zy] = { silent: i, updateParams: s }, this[Ey] = !1, this.getZr().wakeUp(); else { try { Uy(this), qy.update.call(this, null, s) } catch (t) { throw this[zy] = null, this[Ey] = !1, t } this._ssr || this._zr.flush(), this[zy] = null, this[Ey] = !1, $y.call(this, i), Qy.call(this, i) } } }, v.prototype.setTheme = function () { }, v.prototype.getModel = function () { return this._model }, v.prototype.getOption = function () { return this._model && this._model.getOption() }, v.prototype.getWidth = function () { return this._zr.getWidth() }, v.prototype.getHeight = function () { return this._zr.getHeight() }, v.prototype.getDevicePixelRatio = function () { return this._zr.painter.dpr || p.hasGlobalWindow && window.devicePixelRatio || 1 }, v.prototype.getRenderedCanvas = function (t) { return this.renderToCanvas(t) }, v.prototype.renderToCanvas = function (t) { return this._zr.painter.getRenderedCanvas({ backgroundColor: (t = t || {}).backgroundColor || this._model.get("backgroundColor"), pixelRatio: t.pixelRatio || this.getDevicePixelRatio() }) }, v.prototype.renderToSVGString = function (t) { return this._zr.painter.renderToString({ useViewBox: (t = t || {}).useViewBox }) }, v.prototype.getSvgDataURL = function () { var t; if (p.svgSupported) return O((t = this._zr).storage.getDisplayList(), function (t) { t.stopAnimation(null, !0) }), t.painter.toDataURL() }, v.prototype.getDataURL = function (t) { var e, n, i, r; if (!this._disposed) return r = (t = t || {}).excludeComponents, e = this._model, n = [], i = this, O(r, function (t) { e.eachComponent({ mainType: t }, function (t) { t = i._componentsMap[t.__viewId]; t.group.ignore || (n.push(t), t.group.ignore = !0) }) }), r = "svg" === this._zr.painter.getType() ? this.getSvgDataURL() : this.renderToCanvas(t).toDataURL("image/" + (t && t.type || "png")), O(n, function (t) { t.group.ignore = !1 }), r; this.id }, v.prototype.getConnectedDataURL = function (i) { var r, o, a, s, l, u, h, c, p, e, t, n, d, f, g; if (!this._disposed) return r = "svg" === i.type, o = this.group, a = Math.min, s = Math.max, k0[o] ? (u = l = 1 / 0, c = h = -1 / 0, p = [], e = i && i.pixelRatio || this.getDevicePixelRatio(), O(C0, function (t, e) { var n; t.group === o && (n = r ? t.getZr().painter.getSvgDom().innerHTML : t.renderToCanvas(y(i)), t = t.getDom().getBoundingClientRect(), l = a(t.left, l), u = a(t.top, u), h = s(t.right, h), c = s(t.bottom, c), p.push({ dom: n, left: t.left, top: t.top })) }), t = (h *= e) - (l *= e), n = (c *= e) - (u *= e), d = W.createCanvas(), (f = Wr(d, { renderer: r ? "svg" : "canvas" })).resize({ width: t, height: n }), r ? (g = "", O(p, function (t) { var e = t.left - l, n = t.top - u; g += '<g transform="translate(' + e + "," + n + ')">' + t.dom + "</g>" }), f.painter.getSvgRoot().innerHTML = g, i.connectedBackgroundColor && f.painter.setBackgroundColor(i.connectedBackgroundColor), f.refreshImmediately(), f.painter.toDataURL()) : (i.connectedBackgroundColor && f.add(new bs({ shape: { x: 0, y: 0, width: t, height: n }, style: { fill: i.connectedBackgroundColor } })), O(p, function (t) { t = new fs({ style: { x: t.left * e - l, y: t.top * e - u, image: t.dom } }); f.add(t) }), f.refreshImmediately(), d.toDataURL("image/" + (i && i.type || "png")))) : this.getDataURL(i); this.id }, v.prototype.convertToPixel = function (t, e) { return Zy(this, "convertToPixel", t, e) }, v.prototype.convertFromPixel = function (t, e) { return Zy(this, "convertFromPixel", t, e) }, v.prototype.containPixel = function (t, i) { var r; if (!this._disposed) return O(Co(this._model, t), function (t, n) { 0 <= n.indexOf("Models") && O(t, function (t) { var e = t.coordinateSystem; e && e.containPoint ? r = r || !!e.containPoint(i) : "seriesModels" === n && (e = this._chartsMap[t.__viewId]) && e.containPoint && (r = r || e.containPoint(i, t)) }, this) }, this), !!r; this.id }, v.prototype.getVisual = function (t, e) { var t = Co(this._model, t, { defaultMainType: "series" }), n = t.seriesModel.getData(), t = t.hasOwnProperty("dataIndexInside") ? t.dataIndexInside : t.hasOwnProperty("dataIndex") ? n.indexOfRawIndex(t.dataIndex) : null; if (null != t) { var i = n, r = t, o = e; switch (o) { case "color": return i.getItemVisual(r, "style")[i.getVisual("drawType")]; case "opacity": return i.getItemVisual(r, "style").opacity; case "symbol": case "symbolSize": case "liftZ": return i.getItemVisual(r, o) } } else { var a = n, s = e; switch (s) { case "color": return a.getVisual("style")[a.getVisual("drawType")]; case "opacity": return a.getVisual("style").opacity; case "symbol": case "symbolSize": case "liftZ": return a.getVisual(s) } } }, v.prototype.getViewOfComponentModel = function (t) { return this._componentsMap[t.__viewId] }, v.prototype.getViewOfSeriesModel = function (t) { return this._chartsMap[t.__viewId] }, v.prototype._initEvents = function () { var t, n, i, s = this; O(v0, function (a) { function t(t) { var n, e, i, r = s.getModel(), o = t.target; "globalout" === a ? n = {} : o && Gg(o, function (t) { var e, t = Fs(t); return t && null != t.dataIndex ? (e = t.dataModel || r.getSeriesByIndex(t.seriesIndex), n = e && e.getDataParams(t.dataIndex, t.dataType, o) || {}, 1) : t.eventData && (n = P({}, t.eventData), 1) }, !0), n && (e = n.componentType, i = n.componentIndex, "markLine" !== e && "markPoint" !== e && "markArea" !== e || (e = "series", i = n.seriesIndex), i = (e = e && null != i && r.getComponent(e, i)) && s["series" === e.mainType ? "_chartsMap" : "_componentsMap"][e.__viewId], n.event = t, n.type = a, s._$eventProcessor.eventInfo = { targetEl: o, packedEvent: n, model: e, view: i }, s.trigger(a, n)) } t.zrEventfulCallAtLast = !0, s._zr.on(a, t, s) }), O(x0, function (t, e) { s._messageCenter.on(e, function (t) { this.trigger(e, t) }, s) }), O(["selectchanged"], function (e) { s._messageCenter.on(e, function (t) { this.trigger(e, t) }, s) }), t = this._messageCenter, i = (n = this)._api, t.on("selectchanged", function (t) { var e = i.getModel(); t.isFromClick ? (Wg("map", "selectchanged", n, e, t), Wg("pie", "selectchanged", n, e, t)) : "select" === t.fromAction ? (Wg("map", "selected", n, e, t), Wg("pie", "selected", n, e, t)) : "unselect" === t.fromAction && (Wg("map", "unselected", n, e, t), Wg("pie", "unselected", n, e, t)) }) }, v.prototype.isDisposed = function () { return this._disposed }, v.prototype.clear = function () { this._disposed ? this.id : this.setOption({ series: [] }, !0) }, v.prototype.dispose = function () { var t, e, n; this._disposed ? this.id : (this._disposed = !0, this.getDom() && Ao(this.getDom(), A0, ""), e = (t = this)._api, n = t._model, O(t._componentsViews, function (t) { t.dispose(n, e) }), O(t._chartsViews, function (t) { t.dispose(n, e) }), t._zr.dispose(), t._dom = t._model = t._chartsMap = t._componentsMap = t._chartsViews = t._componentsViews = t._scheduler = t._api = t._zr = t._throttledZrFlush = t._theme = t._coordSysMgr = t._messageCenter = null, delete C0[t.id]) }, v.prototype.resize = function (t) { if (!this[Ey]) if (this._disposed) this.id; else { this._zr.resize(t); var e = this._model; if (this._loadingFX && this._loadingFX.resize(), e) { var e = e.resetOption("media"), n = t && t.silent; this[zy] && (null == n && (n = this[zy].silent), e = !0, this[zy] = null), this[Ey] = !0; try { e && Uy(this), qy.update.call(this, { type: "resize", animation: P({ duration: 0 }, t && t.animation) }) } catch (t) { throw this[Ey] = !1, t } this[Ey] = !1, $y.call(this, n), Qy.call(this, n) } } }, v.prototype.showLoading = function (t, e) { this._disposed ? this.id : (R(t) && (e = t, t = ""), t = t || "default", this.hideLoading(), T0[t] && (t = T0[t](this._api, e), e = this._zr, this._loadingFX = t, e.add(t))) }, v.prototype.hideLoading = function () { this._disposed ? this.id : (this._loadingFX && this._zr.remove(this._loadingFX), this._loadingFX = null) }, v.prototype.makeActionFromEvent = function (t) { var e = P({}, t); return e.type = x0[t.type], e }, v.prototype.dispatchAction = function (t, e) { var n; this._disposed ? this.id : (R(e) || (e = { silent: !!e }), _0[t.type] && this._model && (this[Ey] ? this._pendingActions.push(t) : (n = e.silent, Ky.call(this, t, n), (t = e.flush) ? this._zr.flush() : !1 !== t && p.browser.weChat && this._throttledZrFlush(), $y.call(this, n), Qy.call(this, n)))) }, v.prototype.updateLabelLayout = function () { Ry.trigger("series:layoutlabels", this._model, this._api, { updatedSeries: [] }) }, v.prototype.appendData = function (t) { var e; this._disposed ? this.id : (e = t.seriesIndex, this.getModel().getSeriesByIndex(e).appendData(t), this._scheduler.unfinished = !0, this.getZr().wakeUp()) }, v.internalField = (Uy = function (t) { var e = t._scheduler; e.restorePipelines(t._model), e.prepareStageTasks(), Xy(t, !0), Xy(t, !1), e.plan() }, Xy = function (t, r) { for (var o = t._model, a = t._scheduler, s = r ? t._componentsViews : t._chartsViews, l = r ? t._componentsMap : t._chartsMap, u = t._zr, h = t._api, e = 0; e < s.length; e++)s[e].__alive = !1; function n(t) { var e, n = t.__requireNewView, i = (t.__requireNewView = !1, "_ec_" + t.id + "_" + t.type), n = !n && l[i]; n || (e = No(t.type), (n = new (r ? eg.getClass(e.main, e.sub) : ag.getClass(e.sub))).init(o, h), l[i] = n, s.push(n), u.add(n.group)), t.__viewId = n.__id = i, n.__alive = !0, n.__model = t, n.group.__ecComponentInfo = { mainType: t.mainType, index: t.componentIndex }, r || a.prepareView(n, t, o, h) } for (r ? o.eachComponent(function (t, e) { "series" !== t && n(e) }) : o.eachSeries(n), e = 0; e < s.length;) { var i = s[e]; i.__alive ? e++ : (r || i.renderTask.dispose(), u.remove(i.group), i.dispose(o, h), s.splice(e, 1), l[i.__id] === i && delete l[i.__id], i.__id = i.group.__ecComponentInfo = null) } }, Yy = function (p, e, d, n, t) { var i, f, r = p._model; function o(t) { t && t.__alive && t[e] && t[e](t.__model, r, p._api, d) } r.setUpdatePayload(d), n ? ((i = {})[n + "Id"] = d[n + "Id"], i[n + "Index"] = d[n + "Index"], i[n + "Name"] = d[n + "Name"], i = { mainType: n, query: i }, t && (i.subType = t), null != (t = d.excludeSeriesId) && (f = E(), O(co(t), function (t) { t = _o(t, null); null != t && f.set(t, !0) })), r && r.eachComponent(i, function (t) { if (!f || null == f.get(t.id)) if (zl(d)) if (t instanceof qf) { if (d.type === js && !d.notBlur && !t.get(["emphasis", "disabled"])) { var e = t, n = d, i = p._api, r = e.seriesIndex, o = e.getData(n.dataType); if (o) { var n = (V(n = So(o, n)) ? n[0] : n) || 0, a = o.getItemGraphicEl(n); if (!a) for (var s = o.count(), l = 0; !a && l < s;)a = o.getItemGraphicEl(l++); a ? Tl(r, (n = Fs(a)).focus, n.blurScope, i) : (n = e.get(["emphasis", "focus"]), e = e.get(["emphasis", "blurScope"]), null != n && Tl(r, n, e, i)) } } } else n = (r = kl(t.mainType, t.componentIndex, d.name, p._api)).focusSelf, e = r.dispatchers, d.type === js && n && !d.notBlur && Cl(t.mainType, t.componentIndex, p._api), e && O(e, function (t) { (d.type === js ? vl : _l)(t) }); else El(d) && t instanceof qf && (i = t, u = d, p._api, El(u) && (h = u.dataType, V(c = So(i.getData(h), u)) || (c = [c]), i[u.type === Js ? "toggleSelect" : u.type === $s ? "select" : "unselect"](c, h)), Dl(t), a0(p)); var u, h, c }, p), r && r.eachComponent(i, function (t) { f && null != f.get(t.id) || o(p["series" === n ? "_chartsMap" : "_componentsMap"][t.__viewId]) }, p)) : O([].concat(p._componentsViews).concat(p._chartsViews), o) }, qy = { prepareAndUpdate: function (t) { Uy(this), qy.update.call(this, t, { optionChanged: null != t.newOption }) }, update: function (t, e) { var n = this._model, i = this._api, r = this._zr, o = this._coordSysMgr, a = this._scheduler; n && (n.setUpdatePayload(t), a.restoreData(n, t), a.performSeriesTasks(n), o.create(n, i), a.performDataProcessorTasks(n, t), jy(this, n), o.update(n, i), d0(n), a.performVisualTasks(n, t), e0(this, n, i, t, e), o = n.get("backgroundColor") || "transparent", a = n.get("darkMode"), r.setBackgroundColor(o), null != a && "auto" !== a && r.setDarkMode(a), Ry.trigger("afterupdate", n, i)) }, updateTransform: function (n) { var i, r, o = this, a = this._model, s = this._api; a && (a.setUpdatePayload(n), i = [], a.eachComponent(function (t, e) { "series" !== t && (t = o.getViewOfComponentModel(e)) && t.__alive && (!t.updateTransform || (e = t.updateTransform(e, a, s, n)) && e.update) && i.push(t) }), r = E(), a.eachSeries(function (t) { var e = o._chartsMap[t.__viewId]; (!e.updateTransform || (e = e.updateTransform(t, a, s, n)) && e.update) && r.set(t.uid, 1) }), d0(a), this._scheduler.performVisualTasks(a, n, { setDirty: !0, dirtyMap: r }), i0(this, a, s, n, {}, r), Ry.trigger("afterupdate", a, s)) }, updateView: function (t) { var e = this._model; e && (e.setUpdatePayload(t), ag.markUpdateMethod(t, "updateView"), d0(e), this._scheduler.performVisualTasks(e, t, { setDirty: !0 }), e0(this, e, this._api, t, {}), Ry.trigger("afterupdate", e, this._api)) }, updateVisual: function (n) { var i = this, r = this._model; r && (r.setUpdatePayload(n), r.eachSeries(function (t) { t.getData().clearAllVisual() }), ag.markUpdateMethod(n, "updateVisual"), d0(r), this._scheduler.performVisualTasks(r, n, { visualType: "visual", setDirty: !0 }), r.eachComponent(function (t, e) { "series" !== t && (t = i.getViewOfComponentModel(e)) && t.__alive && t.updateVisual(e, r, i._api, n) }), r.eachSeries(function (t) { i._chartsMap[t.__viewId].updateVisual(t, r, i._api, n) }), Ry.trigger("afterupdate", r, this._api)) }, updateLayout: function (t) { qy.update.call(this, t) } }, Zy = function (t, e, n, i) { if (t._disposed) t.id; else for (var r = t._model, o = t._coordSysMgr.getCoordinateSystems(), a = Co(r, n), s = 0; s < o.length; s++) { var l = o[s]; if (l[e] && null != (l = l[e](r, a, i))) return l } }, jy = function (t, e) { var n = t._chartsMap, i = t._scheduler; e.eachSeries(function (t) { i.updateStreamModes(t, n[t.__viewId]) }) }, Ky = function (i, t) { var r = this, e = this.getModel(), n = i.type, o = i.escapeConnect, a = _0[n], s = a.actionInfo, l = (s.update || "update").split(":"), u = l.pop(), h = null != l[0] && No(l[0]), l = (this[Ey] = !0, [i]), c = !1; i.batch && (c = !0, l = F(i.batch, function (t) { return (t = B(P({}, t), i)).batch = null, t })); var p = [], d = El(i), f = zl(i); if (f && Ml(this._api), O(l, function (t) { var e, n; (y = (y = a.action(t, r._model, r._api)) || P({}, t)).type = s.event || y.type, p.push(y), f ? (e = (n = ko(i)).queryOptionMap, n = n.mainTypeSpecified ? e.keys()[0] : "series", Yy(r, u, t, n), a0(r)) : d ? (Yy(r, u, t, "series"), a0(r)) : h && Yy(r, u, t, h.main, h.sub) }), "none" !== u && !f && !d && !h) try { this[zy] ? (Uy(this), qy.update.call(this, i), this[zy] = null) : qy[u].call(this, i) } catch (i) { throw this[Ey] = !1, i } var g, y = c ? { type: s.event || n, escapeConnect: o, batch: p } : p[0]; this[Ey] = !1, t || ((l = this._messageCenter).trigger(y.type, y), d && (c = { type: "selectchanged", escapeConnect: o, selected: (g = [], e.eachSeries(function (n) { O(n.getAllData(), function (t) { t.data; var t = t.type, e = n.getSelectedDataIndices(); 0 < e.length && (e = { dataIndex: e, seriesIndex: n.seriesIndex }, null != t && (e.dataType = t), g.push(e)) }) }), g), isFromClick: i.isFromClick || !1, fromAction: i.type, fromActionPayload: i }, l.trigger(c.type, c))) }, $y = function (t) { for (var e = this._pendingActions; e.length;) { var n = e.shift(); Ky.call(this, n, t) } }, Qy = function (t) { t || this.trigger("updated") }, Jy = function (e, n) { e.on("rendered", function (t) { n.trigger("rendered", t), !e.animation.isFinished() || n[zy] || n._scheduler.unfinished || n._pendingActions.length || n.trigger("finished") }) }, t0 = function (t, a) { t.on("mouseover", function (t) { var e, n, i, r, o = Gg(t.target, Nl); o && (o = o, e = t, t = a._api, n = Fs(o), i = (r = kl(n.componentMainType, n.componentIndex, n.componentHighDownName, t)).dispatchers, r = r.focusSelf, i ? (r && Cl(n.componentMainType, n.componentIndex, t), O(i, function (t) { return yl(t, e) })) : (Tl(n.seriesIndex, n.focus, n.blurScope, t), "self" === n.focus && Cl(n.componentMainType, n.componentIndex, t), yl(o, e)), a0(a)) }).on("mouseout", function (t) { var e, n, i = Gg(t.target, Nl); i && (i = i, e = t, Ml(t = a._api), (n = kl((n = Fs(i)).componentMainType, n.componentIndex, n.componentHighDownName, t).dispatchers) ? O(n, function (t) { return ml(t, e) }) : ml(i, e), a0(a)) }).on("click", function (t) { var e, t = Gg(t.target, function (t) { return null != Fs(t).dataIndex }, !0); t && (e = t.selected ? "unselect" : "select", t = Fs(t), a._api.dispatchAction({ type: e, dataType: t.dataType, dataIndexInside: t.dataIndex, seriesIndex: t.seriesIndex, isFromClick: !0 })) }) }, e0 = function (t, e, n, i, r) { var o, a, s, l, u, h, c; u = [], c = !(h = []), (o = e).eachComponent(function (t, e) { var n = e.get("zlevel") || 0, i = e.get("z") || 0, r = e.getZLevelKey(); c = c || !!r, ("series" === t ? h : u).push({ zlevel: n, z: i, idx: e.componentIndex, type: t, key: r }) }), c && (gn(l = u.concat(h), function (t, e) { return t.zlevel === e.zlevel ? t.z - e.z : t.zlevel - e.zlevel }), O(l, function (t) { var e = o.getComponent(t.type, t.idx), n = t.zlevel, t = t.key; null != a && (n = Math.max(a, n)), t ? (n === a && t !== s && n++, s = t) : s && (n === a && n++, s = ""), a = n, e.setZLevel(n) })), n0(t, e, n, i, r), O(t._chartsViews, function (t) { t.__alive = !1 }), i0(t, e, n, i, r), O(t._chartsViews, function (t) { t.__alive || t.remove(e, n) }) }, n0 = function (t, n, i, r, e, o) { O(o || t._componentsViews, function (t) { var e = t.__model; y0(0, t), t.render(e, n, i, r), g0(e, t), m0(e, t) }) }, i0 = function (r, t, e, o, n, a) { var i, s, l, u, h = r._scheduler, c = (n = P(n || {}, { updatedSeries: t.getSeries() }), Ry.trigger("series:beforeupdate", t, e, n), !1); t.eachSeries(function (t) { var e, n = r._chartsMap[t.__viewId], i = (n.__alive = !0, n.renderTask); h.updatePayload(i, o), y0(0, n), a && a.get(t.uid) && i.dirty(), i.perform(h.getPerformArgs(i)) && (c = !0), n.group.silent = !!t.get("silent"), i = n, e = t.get("blendMode") || null, i.eachRendered(function (t) { t.isGroup || (t.style.blend = e) }), Dl(t) }), h.unfinished = c || h.unfinished, Ry.trigger("series:layoutlabels", t, e, n), Ry.trigger("series:transition", t, e, n), t.eachSeries(function (t) { var e = r._chartsMap[t.__viewId]; g0(t, e), m0(t, e) }), s = t, l = (i = r)._zr.storage, u = 0, l.traverse(function (t) { t.isGroup || u++ }), u > s.get("hoverLayerThreshold") && !p.node && !p.worker && s.eachSeries(function (t) { t.preventUsingHoverLayer || (t = i._chartsMap[t.__viewId]).__alive && t.eachRendered(function (t) { t.states.emphasis && (t.states.emphasis.hoverLayer = !0) }) }), Ry.trigger("series:afterupdate", t, e, n) }, a0 = function (t) { t[By] = !0, t.getZr().wakeUp() }, s0 = function (t) { t[By] && (t.getZr().storage.traverse(function (t) { Th(t) || f0(t) }), t[By] = !1) }, r0 = function (n) { return u(t, e = Yp), t.prototype.getCoordinateSystems = function () { return n._coordSysMgr.getCoordinateSystems() }, t.prototype.getComponentByElement = function (t) { for (; t;) { var e = t.__ecComponentInfo; if (null != e) return n._model.getComponent(e.mainType, e.index); t = t.parent } }, t.prototype.enterEmphasis = function (t, e) { vl(t, e), a0(n) }, t.prototype.leaveEmphasis = function (t, e) { _l(t, e), a0(n) }, t.prototype.enterBlur = function (t) { cl(t, al), a0(n) }, t.prototype.leaveBlur = function (t) { xl(t), a0(n) }, t.prototype.enterSelect = function (t) { wl(t), a0(n) }, t.prototype.leaveSelect = function (t) { bl(t), a0(n) }, t.prototype.getModel = function () { return n.getModel() }, t.prototype.getViewOfComponentModel = function (t) { return n.getViewOfComponentModel(t) }, t.prototype.getViewOfSeriesModel = function (t) { return n.getViewOfSeriesModel(t) }, new t(n); function t() { return null !== e && e.apply(this, arguments) || this } var e }, void (o0 = function (i) { function r(t, e) { for (var n = 0; n < t.length; n++)t[n][Vy] = e } O(x0, function (t, e) { i._messageCenter.on(e, function (t) { var e, n; !k0[i.group] || 0 === i[Vy] || t && t.escapeConnect || (e = i.makeActionFromEvent(t), n = [], O(C0, function (t) { t !== i && t.group === i.group && n.push(t) }), r(n, 0), O(n, function (t) { 1 !== t[Vy] && t.dispatchAction(e) }), r(n, 2)) }) }) })); var c0, p0 = v, $g = p0.prototype; function v(t, e, n) { var i = c0.call(this, new Bg) || this, t = (i._chartsViews = [], i._chartsMap = {}, i._componentsViews = [], i._componentsMap = {}, i._pendingActions = [], n = n || {}, H(e) && (e = M0[e]), i._dom = t, i._zr = Wr(t, { renderer: n.renderer || "canvas", devicePixelRatio: n.devicePixelRatio, width: n.width, height: n.height, ssr: n.ssr, useDirtyRect: N(n.useDirtyRect, !1), useCoarsePointer: N(n.useCoarsePointer, "auto"), pointerSize: n.pointerSize })), n = (i._ssr = n.ssr, i._throttledZrFlush = dg(ht(t.flush, t), 17), (e = y(e)) && vd(e, !0), i._theme = e, i._locale = H(e = n.locale || bc) ? (n = xc[e.toUpperCase()] || {}, e === mc || e === vc ? y(n) : d(y(n), y(xc[_c]), !1)) : d(y(e), y(xc[_c]), !1), i._coordSysMgr = new jp, i._api = r0(i)); function r(t, e) { return t.__prio - e.__prio } return gn(S0, r), gn(w0, r), i._scheduler = new wg(i, n, w0, S0), i._messageCenter = new u0, i._initEvents(), i.resize = ht(i.resize, i), t.animation.on("frame", i._onframe, i), Jy(t, i), t0(t, i), Dt(i), i } function d0(t) { t.clearColorPalette(), t.eachSeries(function (t) { t.clearColorPalette() }) } function f0(t) { for (var e = [], n = t.currentStates, i = 0; i < n.length; i++) { var r = n[i]; "emphasis" !== r && "blur" !== r && "select" !== r && e.push(r) } t.selected && t.states.select && e.push("select"), t.hoverState === Ys && t.states.emphasis ? e.push("emphasis") : t.hoverState === Xs && t.states.blur && e.push("blur"), t.useStates(e) } function g0(t, e) { var n, i; t.preventAutoZ || (n = t.get("z") || 0, i = t.get("zlevel") || 0, e.eachRendered(function (t) { return function t(e, n, i, r) { var o = e.getTextContent(), a = e.getTextGuideLine(); if (e.isGroup) for (var s = e.childrenRef(), l = 0; l < s.length; l++)r = Math.max(t(s[l], n, i, r), r); else e.z = n, e.zlevel = i, r = Math.max(e.z2, r); o && (o.z = n, o.zlevel = i, isFinite(r)) && (o.z2 = r + 2), a && (o = e.textGuideLineConfig, a.z = n, a.zlevel = i, isFinite(r)) && (a.z2 = r + (o && o.showAbove ? 1 : -1)); return r }(t, n, i, -1 / 0), !0 })) } function y0(t, e) { e.eachRendered(function (t) { var e, n; Th(t) || (e = t.getTextContent(), n = t.getTextGuideLine(), t.stateTransition && (t.stateTransition = null), e && e.stateTransition && (e.stateTransition = null), n && n.stateTransition && (n.stateTransition = null), t.hasState() ? (t.prevStates = t.currentStates, t.clearStates()) : t.prevStates && (t.prevStates = null)) }) } function m0(t, e) { var n = t.getModel("stateAnimation"), r = t.isAnimationEnabled(), t = n.get("duration"), o = 0 < t ? { duration: t, delay: n.get("delay"), easing: n.get("easing") } : null; e.eachRendered(function (t) { var e, n, i; t.states && t.states.emphasis && (Th(t) || (t instanceof as && ((i = Ws(n = t)).normalFill = n.style.fill, i.normalStroke = n.style.stroke, n = n.states.select || {}, i.selectFill = n.style && n.style.fill || null, i.selectStroke = n.style && n.style.stroke || null), t.__dirty && (i = t.prevStates) && t.useStates(i), r && (t.stateTransition = o, n = t.getTextContent(), e = t.getTextGuideLine(), n && (n.stateTransition = o), e) && (e.stateTransition = o), t.__dirty && f0(t))) }) } $g.on = Hy("on"), $g.off = Hy("off"), $g.one = function (i, r, t) { var o = this; this.on.call(this, i, function t() { for (var e = [], n = 0; n < arguments.length; n++)e[n] = arguments[n]; r && r.apply && r.apply(this, e), o.off(i, t) }, t) }; var v0 = ["click", "dblclick", "mouseover", "mouseout", "mousemove", "mousedown", "mouseup", "globalout", "contextmenu"]; var _0 = {}, x0 = {}, w0 = [], b0 = [], S0 = [], M0 = {}, T0 = {}, C0 = {}, k0 = {}, D0 = +new Date, I0 = +new Date, A0 = "_echarts_instance_"; function L0(t) { k0[t] = !1 } Zg = L0; function P0(t) { return C0[e = A0, (t = t).getAttribute ? t.getAttribute(e) : t[e]]; var e } function O0(t, e) { M0[t] = e } function R0(t) { k(b0, t) < 0 && b0.push(t) } function N0(t, e) { U0(w0, t, e, 2e3) } function E0(t) { B0("afterinit", t) } function z0(t) { B0("afterupdate", t) } function B0(t, e) { Ry.on(t, e) } function F0(t, e, n) { S(e) && (n = e, e = ""); var i = R(t) ? t.type : [t, t = { event: e }][0]; t.event = (t.event || i).toLowerCase(), e = t.event, x0[e] || (Tt(Fy.test(i) && Fy.test(e)), _0[i] || (_0[i] = { action: n, actionInfo: t }), x0[e] = i) } function V0(t, e) { jp.register(t, e) } function H0(t, e) { U0(S0, t, e, 1e3, "layout") } function W0(t, e) { U0(S0, t, e, 3e3, "visual") } var G0 = []; function U0(t, e, n, i, r) { (S(e) || R(e)) && (n = e, e = i), 0 <= k(G0, n) || (G0.push(n), (i = wg.wrapStageHandler(n, r)).__prio = e, i.__raw = n, t.push(i)) } function X0(t, e) { T0[t] = e } function Y0(t, e, n) { var i = Ny.registerMap; i && i(t, e, n) } function q0(t) { var e = (t = y(t)).type, n = (e || f(""), e.split(":")), i = (2 !== n.length && f(""), !1); "echarts" === n[0] && (e = n[1], i = !0), t.__isBuiltIn = i, Mf.set(e, t) } W0(2e3, Uo), W0(4500, nc), W0(4500, Ic), W0(2e3, lc), W0(4500, rc), W0(7e3, function (e, i) { e.eachRawSeries(function (t) { var n; !e.isSeriesFiltered(t) && ((n = t.getData()).hasItemVisual() && n.each(function (t) { var e = n.getItemVisual(t, "decal"); e && (n.ensureUniqueItemVisual(t, "style").decal = Py(e, i)) }), t = n.getVisual("decal")) && (n.getVisual("style").decal = Py(t, i)) }) }), R0(vd), N0(900, function (t) { var i = E(); t.eachSeries(function (t) { var e, n = t.get("stack"); n && (n = i.get(n) || i.set(n, []), (t = { stackResultDimension: (e = t.getData()).getCalculationInfo("stackResultDimension"), stackedOverDimension: e.getCalculationInfo("stackedOverDimension"), stackedDimension: e.getCalculationInfo("stackedDimension"), stackedByDimension: e.getCalculationInfo("stackedByDimension"), isStackedByIndex: e.getCalculationInfo("isStackedByIndex"), data: e, seriesModel: t }).stackedDimension) && (t.isStackedByIndex || t.stackedByDimension) && (n.length && e.setCalculationInfo("stackedOnSeries", n[n.length - 1].seriesModel), n.push(t)) }), i.each(_d) }), X0("default", function (i, r) { B(r = r || {}, { text: "loading", textColor: "#000", fontSize: 12, fontWeight: "normal", fontStyle: "normal", fontFamily: "sans-serif", maskColor: "rgba(255, 255, 255, 0.8)", showSpinner: !0, color: "#5470c6", spinnerRadius: 10, lineWidth: 5, zlevel: 0 }); var t = new zr, o = new bs({ style: { fill: r.maskColor }, zlevel: r.zlevel, z: 1e4 }); t.add(o); var a, s = new ks({ style: { text: r.text, fill: r.textColor, fontSize: r.fontSize, fontWeight: r.fontWeight, fontStyle: r.fontStyle, fontFamily: r.fontFamily }, zlevel: r.zlevel, z: 10001 }), l = new bs({ style: { fill: "none" }, textContent: s, textConfig: { position: "right", distance: 10 }, zlevel: r.zlevel, z: 10001 }); return t.add(l), r.showSpinner && ((a = new th({ shape: { startAngle: -xg / 2, endAngle: -xg / 2 + .1, r: r.spinnerRadius }, style: { stroke: r.color, lineCap: "round", lineWidth: r.lineWidth }, zlevel: r.zlevel, z: 10001 })).animateShape(!0).when(1e3, { endAngle: 3 * xg / 2 }).start("circularInOut"), a.animateShape(!0).when(1e3, { startAngle: 3 * xg / 2 }).delay(300).start("circularInOut"), t.add(a)), t.resize = function () { var t = s.getBoundingRect().width, e = r.showSpinner ? r.spinnerRadius : 0, t = (i.getWidth() - 2 * e - (r.showSpinner && t ? 10 : 0) - t) / 2 - (r.showSpinner && t ? 0 : 5 + t / 2) + (r.showSpinner ? 0 : t / 2) + (t ? 0 : e), n = i.getHeight() / 2; r.showSpinner && a.setShape({ cx: t, cy: n }), l.setShape({ x: t - e, y: n - e, width: 2 * e, height: 2 * e }), o.setShape({ x: 0, y: 0, width: i.getWidth(), height: i.getHeight() }) }, t.resize(), t }), F0({ type: js, event: js, update: js }, Ft), F0({ type: Ks, event: Ks, update: Ks }, Ft), F0({ type: $s, event: $s, update: $s }, Ft), F0({ type: Qs, event: Qs, update: Qs }, Ft), F0({ type: Js, event: Js, update: Js }, Ft), O0("light", hc), O0("dark", ac); function Z0(t) { return null == t ? 0 : t.length || 1 } function j0(t) { return t } $0.prototype.add = function (t) { return this._add = t, this }, $0.prototype.update = function (t) { return this._update = t, this }, $0.prototype.updateManyToOne = function (t) { return this._updateManyToOne = t, this }, $0.prototype.updateOneToMany = function (t) { return this._updateOneToMany = t, this }, $0.prototype.updateManyToMany = function (t) { return this._updateManyToMany = t, this }, $0.prototype.remove = function (t) { return this._remove = t, this }, $0.prototype.execute = function () { this[this._diffModeMultiple ? "_executeMultiple" : "_executeOneToOne"]() }, $0.prototype._executeOneToOne = function () { var t = this._old, e = this._new, n = {}, i = new Array(t.length), r = new Array(e.length); this._initIndexMap(t, null, i, "_oldKeyGetter"), this._initIndexMap(e, n, r, "_newKeyGetter"); for (var o = 0; o < t.length; o++) { var a, s = i[o], l = n[s], u = Z0(l); 1 < u ? (a = l.shift(), 1 === l.length && (n[s] = l[0]), this._update && this._update(a, o)) : 1 === u ? (n[s] = null, this._update && this._update(l, o)) : this._remove && this._remove(o) } this._performRestAdd(r, n) }, $0.prototype._executeMultiple = function () { var t = this._old, e = this._new, n = {}, i = {}, r = [], o = []; this._initIndexMap(t, n, r, "_oldKeyGetter"), this._initIndexMap(e, i, o, "_newKeyGetter"); for (var a = 0; a < r.length; a++) { var s = r[a], l = n[s], u = i[s], h = Z0(l), c = Z0(u); if (1 < h && 1 === c) this._updateManyToOne && this._updateManyToOne(u, l), i[s] = null; else if (1 === h && 1 < c) this._updateOneToMany && this._updateOneToMany(u, l), i[s] = null; else if (1 === h && 1 === c) this._update && this._update(u, l), i[s] = null; else if (1 < h && 1 < c) this._updateManyToMany && this._updateManyToMany(u, l), i[s] = null; else if (1 < h) for (var p = 0; p < h; p++)this._remove && this._remove(l[p]); else this._remove && this._remove(l) } this._performRestAdd(o, i) }, $0.prototype._performRestAdd = function (t, e) { for (var n = 0; n < t.length; n++) { var i = t[n], r = e[i], o = Z0(r); if (1 < o) for (var a = 0; a < o; a++)this._add && this._add(r[a]); else 1 === o && this._add && this._add(r); e[i] = null } }, $0.prototype._initIndexMap = function (t, e, n, i) { for (var r = this._diffModeMultiple, o = 0; o < t.length; o++) { var a, s, l = "_ec_" + this[i](t[o], o); r || (n[o] = l), e && (0 === (s = Z0(a = e[l])) ? (e[l] = o, r && n.push(l)) : 1 === s ? e[l] = [a, o] : a.push(o)) } }; var K0 = $0; function $0(t, e, n, i, r, o) { this._old = t, this._new = e, this._oldKeyGetter = n || j0, this._newKeyGetter = i || j0, this.context = r, this._diffModeMultiple = "multiple" === o } J0.prototype.get = function () { return { fullDimensions: this._getFullDimensionNames(), encode: this._encode } }, J0.prototype._getFullDimensionNames = function () { return this._cachedDimNames || (this._cachedDimNames = this._schema ? this._schema.makeOutputDimensionNames() : []), this._cachedDimNames }; var Q0 = J0; function J0(t, e) { this._encode = t, this._schema = e } function tm(o, t) { var e = {}, a = e.encode = {}, s = E(), l = [], u = [], h = {}, i = (O(o.dimensions, function (t) { var e, n, i = o.getDimensionInfo(t), r = i.coordDim; r && (e = i.coordDimIndex, em(a, r)[e] = t, i.isExtraCoord || (s.set(r, 1), "ordinal" !== (n = i.type) && "time" !== n && (l[0] = t), em(h, r)[e] = o.getDimensionIndex(i.name)), i.defaultTooltip) && u.push(t), _p.each(function (t, e) { var n = em(a, e), e = i.otherDims[e]; null != e && !1 !== e && (n[e] = i.name) }) }), []), r = {}, n = (s.each(function (t, e) { var n = a[e]; r[e] = n[0], i = i.concat(n) }), e.dataDimsOnCoord = i, e.dataDimIndicesOnCoord = F(i, function (t) { return o.getDimensionInfo(t).storeDimIndex }), e.encodeFirstDimNotExtra = r, a.label), n = (n && n.length && (l = n.slice()), a.tooltip); return n && n.length ? u = n.slice() : u.length || (u = l.slice()), a.defaultedLabel = l, a.defaultedTooltip = u, e.userOutput = new Q0(h, t), e } function em(t, e) { return t.hasOwnProperty(e) || (t[e] = []), t[e] } var nm = function (t) { this.otherDims = {}, null != t && P(this, t) }, im = Mo(), rm = { float: "f", int: "i", ordinal: "o", number: "n", time: "t" }, om = (am.prototype.isDimensionOmitted = function () { return this._dimOmitted }, am.prototype._updateDimOmitted = function (t) { !(this._dimOmitted = t) || this._dimNameMap || (this._dimNameMap = um(this.source)) }, am.prototype.getSourceDimensionIndex = function (t) { return N(this._dimNameMap.get(t), -1) }, am.prototype.getSourceDimension = function (t) { var e = this.source.dimensionsDefine; if (e) return e[t] }, am.prototype.makeStoreSchema = function () { for (var t = this._fullDimCount, e = Id(this.source), n = !(30 < t), i = "", r = [], o = 0, a = 0; o < t; o++) { var s, l = void 0, u = void 0, h = void 0, c = this.dimensions[a]; c && c.storeDimIndex === o ? (l = e ? c.name : null, u = c.type, h = c.ordinalMeta, a++) : (s = this.getSourceDimension(o)) && (l = e ? s.name : null, u = s.type), r.push({ property: l, type: u, ordinalMeta: h }), !e || null == l || c && c.isCalculationCoord || (i += n ? l.replace(/\`/g, "`1").replace(/\$/g, "`2") : l), i = i + "$" + (rm[u] || "f"), h && (i += h.uid), i += "$" } var p = this.source; return { dimensions: r, hash: [p.seriesLayoutBy, p.startIndex, i].join("$$") } }, am.prototype.makeOutputDimensionNames = function () { for (var t = [], e = 0, n = 0; e < this._fullDimCount; e++) { var i = void 0, r = this.dimensions[n]; r && r.storeDimIndex === e ? (r.isCalculationCoord || (i = r.name), n++) : (r = this.getSourceDimension(e)) && (i = r.name), t.push(i) } return t }, am.prototype.appendCalculationDimension = function (t) { this.dimensions.push(t), t.isCalculationCoord = !0, this._fullDimCount++, this._updateDimOmitted(!0) }, am); function am(t) { this.dimensions = t.dimensions, this._dimOmitted = t.dimensionOmitted, this.source = t.source, this._fullDimCount = t.fullDimensionCount, this._updateDimOmitted(t.dimensionOmitted) } function sm(t) { return t instanceof om } function lm(t) { for (var e = E(), n = 0; n < (t || []).length; n++) { var i = t[n], i = R(i) ? i.name : i; null != i && null == e.get(i) && e.set(i, n) } return e } function um(t) { var e = im(t); return e.dimNameMap || (e.dimNameMap = lm(t.dimensionsDefine)) } var hm, cm, pm, dm, fm, gm, ym, mm = R, vm = F, _m = "undefined" == typeof Int32Array ? Array : Int32Array, xm = ["hasItemOption", "_nameList", "_idList", "_invertedIndicesMap", "_dimSummary", "userOutput", "_rawData", "_dimValueGetter", "_nameDimIdx", "_idDimIdx", "_nameRepeatCount"], wm = ["_approximateExtent"], bm = (_.prototype.getDimension = function (t) { var e; return null == (e = this._recognizeDimIndex(t)) ? t : (e = t, this._dimOmitted ? null != (t = this._dimIdxToName.get(e)) ? t : (t = this._schema.getSourceDimension(e)) ? t.name : void 0 : this.dimensions[e]) }, _.prototype.getDimensionIndex = function (t) { var e = this._recognizeDimIndex(t); return null != e ? e : null == t ? -1 : (e = this._getDimInfo(t)) ? e.storeDimIndex : this._dimOmitted ? this._schema.getSourceDimensionIndex(t) : -1 }, _.prototype._recognizeDimIndex = function (t) { if (dt(t) || null != t && !isNaN(t) && !this._getDimInfo(t) && (!this._dimOmitted || this._schema.getSourceDimensionIndex(t) < 0)) return +t }, _.prototype._getStoreDimIndex = function (t) { return this.getDimensionIndex(t) }, _.prototype.getDimensionInfo = function (t) { return this._getDimInfo(this.getDimension(t)) }, _.prototype._initGetDimensionInfo = function (t) { var e = this._dimInfos; this._getDimInfo = t ? function (t) { return e.hasOwnProperty(t) ? e[t] : void 0 } : function (t) { return e[t] } }, _.prototype.getDimensionsOnCoord = function () { return this._dimSummary.dataDimsOnCoord.slice() }, _.prototype.mapDimension = function (t, e) { var n = this._dimSummary; return null == e ? n.encodeFirstDimNotExtra[t] : (n = n.encode[t]) ? n[e] : null }, _.prototype.mapDimensionsAll = function (t) { return (this._dimSummary.encode[t] || []).slice() }, _.prototype.getStore = function () { return this._store }, _.prototype.initData = function (t, e, n) { var i, r, o = this; (i = t instanceof Nf ? t : i) || (r = this.dimensions, t = Sd(t) || st(t) ? new Od(t, r.length) : t, i = new Nf, r = vm(r, function (t) { return { type: o._dimInfos[t].type, property: t } }), i.initData(t, r, n)), this._store = i, this._nameList = (e || []).slice(), this._idList = [], this._nameRepeatCount = {}, this._doInit(0, i.count()), this._dimSummary = tm(this, this._schema), this.userOutput = this._dimSummary.userOutput }, _.prototype.appendData = function (t) { t = this._store.appendData(t); this._doInit(t[0], t[1]) }, _.prototype.appendValues = function (t, e) { var t = this._store.appendValues(t, e.length), n = t.start, i = t.end, r = this._shouldMakeIdFromName(); if (this._updateOrdinalMeta(), e) for (var o = n; o < i; o++)this._nameList[o] = e[o - n], r && ym(this, o) }, _.prototype._updateOrdinalMeta = function () { for (var t = this._store, e = this.dimensions, n = 0; n < e.length; n++) { var i = this._dimInfos[e[n]]; i.ordinalMeta && t.collectOrdinalMeta(i.storeDimIndex, i.ordinalMeta) } }, _.prototype._shouldMakeIdFromName = function () { var t = this._store.getProvider(); return null == this._idDimIdx && t.getSource().sourceFormat !== Mp && !t.fillStorage }, _.prototype._doInit = function (t, e) { if (!(e <= t)) { var n = this._store.getProvider(), i = (this._updateOrdinalMeta(), this._nameList), r = this._idList; if (n.getSource().sourceFormat === xp && !n.pure) for (var o = [], a = t; a < e; a++) { var s = n.getItem(a, o); this.hasItemOption || !R(l = s) || l instanceof Array || (this.hasItemOption = !0), s && (l = s.name, null == i[a] && null != l && (i[a] = _o(l, null)), s = s.id, null == r[a]) && null != s && (r[a] = _o(s, null)) } if (this._shouldMakeIdFromName()) for (a = t; a < e; a++)ym(this, a); hm(this) } var l }, _.prototype.getApproximateExtent = function (t) { return this._approximateExtent[t] || this._store.getDataExtent(this._getStoreDimIndex(t)) }, _.prototype.setApproximateExtent = function (t, e) { e = this.getDimension(e), this._approximateExtent[e] = t.slice() }, _.prototype.getCalculationInfo = function (t) { return this._calculationInfo[t] }, _.prototype.setCalculationInfo = function (t, e) { mm(t) ? P(this._calculationInfo, t) : this._calculationInfo[t] = e }, _.prototype.getName = function (t) { var t = this.getRawIndex(t), e = this._nameList[t]; return e = null == (e = null == e && null != this._nameDimIdx ? pm(this, this._nameDimIdx, t) : e) ? "" : e }, _.prototype._getCategory = function (t, e) { e = this._store.get(t, e), t = this._store.getOrdinalMeta(t); return t ? t.categories[e] : e }, _.prototype.getId = function (t) { return cm(this, this.getRawIndex(t)) }, _.prototype.count = function () { return this._store.count() }, _.prototype.get = function (t, e) { var n = this._store, t = this._dimInfos[t]; if (t) return n.get(t.storeDimIndex, e) }, _.prototype.getByRawIndex = function (t, e) { var n = this._store, t = this._dimInfos[t]; if (t) return n.getByRawIndex(t.storeDimIndex, e) }, _.prototype.getIndices = function () { return this._store.getIndices() }, _.prototype.getDataExtent = function (t) { return this._store.getDataExtent(this._getStoreDimIndex(t)) }, _.prototype.getSum = function (t) { return this._store.getSum(this._getStoreDimIndex(t)) }, _.prototype.getMedian = function (t) { return this._store.getMedian(this._getStoreDimIndex(t)) }, _.prototype.getValues = function (t, e) { var n = this, i = this._store; return V(t) ? i.getValues(vm(t, function (t) { return n._getStoreDimIndex(t) }), e) : i.getValues(t) }, _.prototype.hasValue = function (t) { for (var e = this._dimSummary.dataDimIndicesOnCoord, n = 0, i = e.length; n < i; n++)if (isNaN(this._store.get(e[n], t))) return !1; return !0 }, _.prototype.indexOfName = function (t) { for (var e = 0, n = this._store.count(); e < n; e++)if (this.getName(e) === t) return e; return -1 }, _.prototype.getRawIndex = function (t) { return this._store.getRawIndex(t) }, _.prototype.indexOfRawIndex = function (t) { return this._store.indexOfRawIndex(t) }, _.prototype.rawIndexOf = function (t, e) { t = (t && this._invertedIndicesMap[t])[e]; return null == t || isNaN(t) ? -1 : t }, _.prototype.indicesOfNearest = function (t, e, n) { return this._store.indicesOfNearest(this._getStoreDimIndex(t), e, n) }, _.prototype.each = function (t, e, n) { S(t) && (n = e, e = t, t = []); n = n || this, t = vm(dm(t), this._getStoreDimIndex, this); this._store.each(t, n ? ht(e, n) : e) }, _.prototype.filterSelf = function (t, e, n) { S(t) && (n = e, e = t, t = []); n = n || this, t = vm(dm(t), this._getStoreDimIndex, this); return this._store = this._store.filter(t, n ? ht(e, n) : e), this }, _.prototype.selectRange = function (n) { var i = this, r = {}; return O(D(n), function (t) { var e = i._getStoreDimIndex(t); r[e] = n[t] }), this._store = this._store.selectRange(r), this }, _.prototype.mapArray = function (t, e, n) { S(t) && (n = e, e = t, t = []); var i = []; return this.each(t, function () { i.push(e && e.apply(this, arguments)) }, n = n || this), i }, _.prototype.map = function (t, e, n, i) { n = n || i || this, i = vm(dm(t), this._getStoreDimIndex, this), t = gm(this); return t._store = this._store.map(i, n ? ht(e, n) : e), t }, _.prototype.modify = function (t, e, n, i) { n = n || i || this, i = vm(dm(t), this._getStoreDimIndex, this); this._store.modify(i, n ? ht(e, n) : e) }, _.prototype.downSample = function (t, e, n, i) { var r = gm(this); return r._store = this._store.downSample(this._getStoreDimIndex(t), e, n, i), r }, _.prototype.lttbDownSample = function (t, e) { var n = gm(this); return n._store = this._store.lttbDownSample(this._getStoreDimIndex(t), e), n }, _.prototype.getRawDataItem = function (t) { return this._store.getRawDataItem(t) }, _.prototype.getItemModel = function (t) { var e = this.hostModel, t = this.getRawDataItem(t); return new dc(t, e, e && e.ecModel) }, _.prototype.diff = function (e) { var n = this; return new K0(e ? e.getStore().getIndices() : [], this.getStore().getIndices(), function (t) { return cm(e, t) }, function (t) { return cm(n, t) }) }, _.prototype.getVisual = function (t) { var e = this._visual; return e && e[t] }, _.prototype.setVisual = function (t, e) { this._visual = this._visual || {}, mm(t) ? P(this._visual, t) : this._visual[t] = e }, _.prototype.getItemVisual = function (t, e) { t = this._itemVisuals[t], t = t && t[e]; return null == t ? this.getVisual(e) : t }, _.prototype.hasItemVisual = function () { return 0 < this._itemVisuals.length }, _.prototype.ensureUniqueItemVisual = function (t, e) { var n = this._itemVisuals, i = n[t], n = (i = i || (n[t] = {}))[e]; return null == n && (V(n = this.getVisual(e)) ? n = n.slice() : mm(n) && (n = P({}, n)), i[e] = n), n }, _.prototype.setItemVisual = function (t, e, n) { var i = this._itemVisuals[t] || {}; this._itemVisuals[t] = i, mm(e) ? P(i, e) : i[e] = n }, _.prototype.clearAllVisual = function () { this._visual = {}, this._itemVisuals = [] }, _.prototype.setLayout = function (t, e) { mm(t) ? P(this._layout, t) : this._layout[t] = e }, _.prototype.getLayout = function (t) { return this._layout[t] }, _.prototype.getItemLayout = function (t) { return this._itemLayouts[t] }, _.prototype.setItemLayout = function (t, e, n) { this._itemLayouts[t] = n ? P(this._itemLayouts[t] || {}, e) : e }, _.prototype.clearItemLayouts = function () { this._itemLayouts.length = 0 }, _.prototype.setItemGraphicEl = function (t, e) { var n, i, r, o, a = this.hostModel && this.hostModel.seriesIndex; n = a, i = this.dataType, r = t, (a = e) && ((o = Fs(a)).dataIndex = r, o.dataType = i, o.seriesIndex = n, "group" === a.type) && a.traverse(function (t) { t = Fs(t); t.seriesIndex = n, t.dataIndex = r, t.dataType = i }), this._graphicEls[t] = e }, _.prototype.getItemGraphicEl = function (t) { return this._graphicEls[t] }, _.prototype.eachItemGraphicEl = function (n, i) { O(this._graphicEls, function (t, e) { t && n && n.call(i, t, e) }) }, _.prototype.cloneShallow = function (t) { return t = t || new _(this._schema || vm(this.dimensions, this._getDimInfo, this), this.hostModel), fm(t, this), t._store = this._store, t }, _.prototype.wrapMethod = function (t, e) { var n = this[t]; S(n) && (this.__wrappedMethods = this.__wrappedMethods || [], this.__wrappedMethods.push(t), this[t] = function () { var t = n.apply(this, arguments); return e.apply(this, [t].concat(St(arguments))) }) }, _.internalField = (hm = function (a) { var s = a._invertedIndicesMap; O(s, function (t, e) { var n = a._dimInfos[e], i = n.ordinalMeta, r = a._store; if (i) { t = s[e] = new _m(i.categories.length); for (var o = 0; o < t.length; o++)t[o] = -1; for (o = 0; o < r.count(); o++)t[r.get(n.storeDimIndex, o)] = o } }) }, pm = function (t, e, n) { return _o(t._getCategory(e, n), null) }, cm = function (t, e) { var n = t._idList[e]; return n = null == (n = null == n && null != t._idDimIdx ? pm(t, t._idDimIdx, e) : n) ? "e\0\0" + e : n }, dm = function (t) { return t = V(t) ? t : null != t ? [t] : [] }, gm = function (t) { var e = new _(t._schema || vm(t.dimensions, t._getDimInfo, t), t.hostModel); return fm(e, t), e }, fm = function (e, n) { O(xm.concat(n.__wrappedMethods || []), function (t) { n.hasOwnProperty(t) && (e[t] = n[t]) }), e.__wrappedMethods = n.__wrappedMethods, O(wm, function (t) { e[t] = y(n[t]) }), e._calculationInfo = P({}, n._calculationInfo) }, void (ym = function (t, e) { var n = t._nameList, i = t._idList, r = t._nameDimIdx, o = t._idDimIdx, a = n[e], s = i[e]; null == a && null != r && (n[e] = a = pm(t, r, e)), null == s && null != o && (i[e] = s = pm(t, o, e)), null == s && null != a && (s = a, 1 < (r = (n = t._nameRepeatCount)[a] = (n[a] || 0) + 1) && (s += "__ec__" + r), i[e] = s) })), _); function _(t, e) { this.type = "list", this._dimOmitted = !1, this._nameList = [], this._idList = [], this._visual = {}, this._layout = {}, this._itemVisuals = [], this._itemLayouts = [], this._graphicEls = [], this._approximateExtent = {}, this._calculationInfo = {}, this.hasItemOption = !1, this.TRANSFERABLE_METHODS = ["cloneShallow", "downSample", "lttbDownSample", "map"], this.CHANGABLE_METHODS = ["filterSelf", "selectRange"]; var n = !(this.DOWNSAMPLE_METHODS = ["downSample", "lttbDownSample"]); sm(t) ? (r = t.dimensions, this._dimOmitted = t.isDimensionOmitted(), this._schema = t) : (n = !0, r = t); for (var i, r = r || ["x", "y"], o = {}, a = [], s = {}, l = !1, u = {}, h = 0; h < r.length; h++) { var c = r[h], c = H(c) ? new nm({ name: c }) : c instanceof nm ? c : new nm(c), p = c.name, d = (c.type = c.type || "float", c.coordDim || (c.coordDim = p, c.coordDimIndex = 0), c.otherDims = c.otherDims || {}); a.push(p), null != u[p] && (l = !0), (o[p] = c).createInvertedIndices && (s[p] = []), 0 === d.itemName && (this._nameDimIdx = h), 0 === d.itemId && (this._idDimIdx = h), n && (c.storeDimIndex = h) } this.dimensions = a, this._dimInfos = o, this._initGetDimensionInfo(l), this.hostModel = e, this._invertedIndicesMap = s, this._dimOmitted && (i = this._dimIdxToName = E(), O(a, function (t) { i.set(o[t].storeDimIndex, t) })) } function Sm(t, e) { Sd(t) || (t = Td(t)); for (var n, i, r = (e = e || {}).coordDimensions || [], o = e.dimensionsDefine || t.dimensionsDefine || [], a = E(), s = [], l = (u = t, n = r, p = e.dimensionsCount, i = Math.max(u.dimensionsDetectedCount || 1, n.length, o.length, p || 0), O(n, function (t) { R(t) && (t = t.dimsDef) && (i = Math.max(i, t.length)) }), i), u = e.canOmitUnusedDimensions && 30 < l, h = o === t.dimensionsDefine, c = h ? um(t) : lm(o), p = e.encodeDefine, d = E(p = !p && e.encodeDefaulter ? e.encodeDefaulter(t, l) : p), f = new Af(l), g = 0; g < f.length; g++)f[g] = -1; function y(t) { var e, n, i, r = f[t]; return r < 0 ? (e = R(e = o[t]) ? e : { name: e }, n = new nm, null != (i = e.name) && null != c.get(i) && (n.name = n.displayName = i), null != e.type && (n.type = e.type), null != e.displayName && (n.displayName = e.displayName), f[t] = s.length, n.storeDimIndex = t, s.push(n), n) : s[r] } if (!u) for (g = 0; g < l; g++)y(g); d.each(function (t, n) { var i, t = co(t).slice(); 1 === t.length && !H(t[0]) && t[0] < 0 ? d.set(n, !1) : (i = d.set(n, []), O(t, function (t, e) { t = H(t) ? c.get(t) : t; null != t && t < l && v(y(i[e] = t), n, e) })) }); var m = 0; function v(t, e, n) { null != _p.get(e) ? t.otherDims[e] = n : (t.coordDim = e, t.coordDimIndex = n, a.set(e, !0)) } O(r, function (t) { H(t) ? (o = t, r = {}) : (o = (r = t).name, t = r.ordinalMeta, r.ordinalMeta = null, (r = P({}, r)).ordinalMeta = t, n = r.dimsDef, i = r.otherDims, r.name = r.coordDim = r.coordDimIndex = r.dimsDef = r.otherDims = null); var n, i, r, o, e = d.get(o); if (!1 !== e) { if (!(e = co(e)).length) for (var a = 0; a < (n && n.length || 1); a++) { for (; m < l && null != y(m).coordDim;)m++; m < l && e.push(m++) } O(e, function (t, e) { t = y(t); h && null != r.type && (t.type = r.type), v(B(t, r), o, e), null == t.name && n && (R(e = n[e]) || (e = { name: e }), t.name = t.displayName = e.name, t.defaultTooltip = e.defaultTooltip), i && B(t.otherDims, i) }) } }); var _ = e.generateCoord, x = null != (w = e.generateCoordCount), w = _ ? w || 1 : 0, b = _ || "value"; function S(t) { null == t.name && (t.name = t.coordDim) } if (u) O(s, function (t) { S(t) }), s.sort(function (t, e) { return t.storeDimIndex - e.storeDimIndex }); else for (var M = 0; M < l; M++) { var T = y(M); null == T.coordDim && (T.coordDim = function (t, e, n) { if (n || e.hasKey(t)) { for (var i = 0; e.hasKey(t + i);)i++; t += i } return e.set(t, !0), t }(b, a, x), T.coordDimIndex = 0, (!_ || w <= 0) && (T.isExtraCoord = !0), w--), S(T), null != T.type || Pp(t, M) !== Dp.Must && (!T.isExtraCoord || null == T.otherDims.itemName && null == T.otherDims.seriesName) || (T.type = "ordinal") } for (var C = s, k = E(), D = 0; D < C.length; D++) { var I = C[D], A = I.name, L = k.get(A) || 0; 0 < L && (I.name = A + (L - 1)), L++, k.set(A, L) } return new om({ source: t, dimensions: s, fullDimensionCount: l, dimensionOmitted: u }) } function Mm(t) { this.coordSysDims = [], this.axisMap = E(), this.categoryAxisMap = E(), this.coordSysName = t } var Tm = { cartesian2d: function (t, e, n, i) { var r = t.getReferringComponents("xAxis", Do).models[0], t = t.getReferringComponents("yAxis", Do).models[0]; e.coordSysDims = ["x", "y"], n.set("x", r), n.set("y", t), Cm(r) && (i.set("x", r), e.firstCategoryDimIndex = 0), Cm(t) && (i.set("y", t), null == e.firstCategoryDimIndex) && (e.firstCategoryDimIndex = 1) }, singleAxis: function (t, e, n, i) { t = t.getReferringComponents("singleAxis", Do).models[0]; e.coordSysDims = ["single"], n.set("single", t), Cm(t) && (i.set("single", t), e.firstCategoryDimIndex = 0) }, polar: function (t, e, n, i) { var t = t.getReferringComponents("polar", Do).models[0], r = t.findAxisModel("radiusAxis"), t = t.findAxisModel("angleAxis"); e.coordSysDims = ["radius", "angle"], n.set("radius", r), n.set("angle", t), Cm(r) && (i.set("radius", r), e.firstCategoryDimIndex = 0), Cm(t) && (i.set("angle", t), null == e.firstCategoryDimIndex) && (e.firstCategoryDimIndex = 1) }, geo: function (t, e, n, i) { e.coordSysDims = ["lng", "lat"] }, parallel: function (t, i, r, o) { var a = t.ecModel, t = a.getComponent("parallel", t.get("parallelIndex")), s = i.coordSysDims = t.dimensions.slice(); O(t.parallelAxisIndex, function (t, e) { var t = a.getComponent("parallelAxis", t), n = s[e]; r.set(n, t), Cm(t) && (o.set(n, t), null == i.firstCategoryDimIndex) && (i.firstCategoryDimIndex = e) }) } }; function Cm(t) { return "category" === t.get("type") } function km(t, e, n) { var i, r, o, a = (n = n || {}).byIndex, s = n.stackedCoordDimension; sm(e.schema) ? (r = e.schema, i = r.dimensions, o = e.store) : i = e; var l, u, h, c, p, d, f = !(!t || !t.get("stack")); return O(i, function (t, e) { H(t) && (i[e] = t = { name: t }), f && !t.isExtraCoord && (a || l || !t.ordinalMeta || (l = t), u || "ordinal" === t.type || "time" === t.type || s && s !== t.coordDim || (u = t)) }), !u || a || l || (a = !0), u && (h = "__\0ecstackresult_" + t.id, c = "__\0ecstackedover_" + t.id, l && (l.createInvertedIndices = !0), p = u.coordDim, n = u.type, d = 0, O(i, function (t) { t.coordDim === p && d++ }), e = { name: h, coordDim: p, coordDimIndex: d, type: n, isExtraCoord: !0, isCalculationCoord: !0, storeDimIndex: i.length }, t = { name: c, coordDim: c, coordDimIndex: d + 1, type: n, isExtraCoord: !0, isCalculationCoord: !0, storeDimIndex: i.length + 1 }, r ? (o && (e.storeDimIndex = o.ensureCalculationDimension(c, n), t.storeDimIndex = o.ensureCalculationDimension(h, n)), r.appendCalculationDimension(e), r.appendCalculationDimension(t)) : (i.push(e), i.push(t))), { stackedDimension: u && u.name, stackedByDimension: l && l.name, isStackedByIndex: a, stackedOverDimension: c, stackResultDimension: h } } function Dm(t, e) { return !!e && e === t.getCalculationInfo("stackedDimension") } function Im(t, e) { return Dm(t, e) ? t.getCalculationInfo("stackResultDimension") : e } function Am(t, e, n) { n = n || {}; var i, r, o, a, s, l, u = e.getSourceManager(), h = !1, t = (t ? (h = !0, i = Td(t)) : h = (i = u.getSource()).sourceFormat === xp, function (t) { var e = t.get("coordinateSystem"), n = new Mm(e); if (e = Tm[e]) return e(t, n, n.axisMap, n.categoryAxisMap), n }(e)), c = (l = t, c = (c = e).get("coordinateSystem"), c = jp.get(c), p = (p = l && l.coordSysDims ? F(l.coordSysDims, function (t) { var e = { name: t }, t = l.axisMap.get(t); return t && (t = t.get("type"), e.type = "category" === (t = t) ? "ordinal" : "time" === t ? "time" : "float"), e }) : p) || c && (c.getDimensionsInfo ? c.getDimensionsInfo() : c.dimensions.slice()) || ["x", "y"]), p = n.useEncodeDefaulter, p = S(p) ? p : p ? ct(Ap, c, e) : null, c = { coordDimensions: c, generateCoord: n.generateCoord, encodeDefine: e.getEncode(), encodeDefaulter: p, canOmitUnusedDimensions: !h }, p = Sm(i, c), d = (c = p.dimensions, r = n.createInvertedIndices, (o = t) && O(c, function (t, e) { var n = t.coordDim, n = o.categoryAxisMap.get(n); n && (null == a && (a = e), t.ordinalMeta = n.getOrdinalMeta(), r) && (t.createInvertedIndices = !0), null != t.otherDims.itemName && (s = !0) }), s || null == a || (c[a].otherDims.itemName = 0), a), n = h ? null : u.getSharedDataStore(p), t = km(e, { schema: p, store: n }), c = new bm(p, e), p = (c.setCalculationInfo(t), null == d || (u = i).sourceFormat !== xp || V(go(function (t) { for (var e = 0; e < t.length && null == t[e];)e++; return t[e] }(u.data || []))) ? null : function (t, e, n, i) { return i === d ? n : this.defaultDimValueGetter(t, e, n, i) }); return c.hasItemOption = !1, c.initData(h ? i : n, null, p), c } Pm.prototype.getSetting = function (t) { return this._setting[t] }, Pm.prototype.unionExtent = function (t) { var e = this._extent; t[0] < e[0] && (e[0] = t[0]), t[1] > e[1] && (e[1] = t[1]) }, Pm.prototype.unionExtentFromData = function (t, e) { this.unionExtent(t.getApproximateExtent(e)) }, Pm.prototype.getExtent = function () { return this._extent.slice() }, Pm.prototype.setExtent = function (t, e) { var n = this._extent; isNaN(t) || (n[0] = t), isNaN(e) || (n[1] = e) }, Pm.prototype.isInExtentRange = function (t) { return this._extent[0] <= t && this._extent[1] >= t }, Pm.prototype.isBlank = function () { return this._isBlank }, Pm.prototype.setBlank = function (t) { this._isBlank = t }; var Lm = Pm; function Pm(t) { this._setting = t || {}, this._extent = [1 / 0, -1 / 0] } Ho(Lm); var Om = 0, Rm = (Nm.createByAxisModel = function (t) { var t = t.option, e = t.data, e = e && F(e, Em); return new Nm({ categories: e, needCollect: !e, deduplication: !1 !== t.dedplication }) }, Nm.prototype.getOrdinal = function (t) { return this._getOrCreateMap().get(t) }, Nm.prototype.parseAndCollect = function (t) { var e, n, i = this._needCollect; return H(t) || i ? (i && !this._deduplication ? (e = this.categories.length, this.categories[e] = t) : null == (e = (n = this._getOrCreateMap()).get(t)) && (i ? (e = this.categories.length, this.categories[e] = t, n.set(t, e)) : e = NaN), e) : t }, Nm.prototype._getOrCreateMap = function () { return this._map || (this._map = E(this.categories)) }, Nm); function Nm(t) { this.categories = t.categories || [], this._needCollect = t.needCollect, this._deduplication = t.deduplication, this.uid = ++Om } function Em(t) { return R(t) && null != t.value ? t.value : t + "" } function zm(t) { return "interval" === t.type || "log" === t.type } function Bm(t, e, n, i) { var r = {}, o = t[1] - t[0], o = r.interval = ro(o / e, !0), e = (null != n && o < n && (o = r.interval = n), null != i && i < o && (o = r.interval = i), r.intervalPrecision = Vm(o)); return n = r.niceTickExtent = [Zr(Math.ceil(t[0] / o) * o, e), Zr(Math.floor(t[1] / o) * o, e)], i = t, isFinite(n[0]) || (n[0] = i[0]), isFinite(n[1]) || (n[1] = i[1]), Hm(n, 0, i), Hm(n, 1, i), n[0] > n[1] && (n[0] = n[1]), r } function Fm(t) { var e = Math.pow(10, io(t)), t = t / e; return t ? 2 === t ? t = 3 : 3 === t ? t = 5 : t *= 2 : t = 1, Zr(t * e) } function Vm(t) { return jr(t) + 2 } function Hm(t, e, n) { t[e] = Math.max(Math.min(t[e], n[1]), n[0]) } function Wm(t, e) { return t >= e[0] && t <= e[1] } function Gm(t, e) { return e[1] === e[0] ? .5 : (t - e[0]) / (e[1] - e[0]) } function Um(t, e) { return t * (e[1] - e[0]) + e[0] } u(qm, Xm = Lm), qm.prototype.parse = function (t) { return null == t ? NaN : H(t) ? this._ordinalMeta.getOrdinal(t) : Math.round(t) }, qm.prototype.contain = function (t) { return Wm(t = this.parse(t), this._extent) && null != this._ordinalMeta.categories[t] }, qm.prototype.normalize = function (t) { return Gm(t = this._getTickNumber(this.parse(t)), this._extent) }, qm.prototype.scale = function (t) { return t = Math.round(Um(t, this._extent)), this.getRawOrdinalNumber(t) }, qm.prototype.getTicks = function () { for (var t = [], e = this._extent, n = e[0]; n <= e[1];)t.push({ value: n }), n++; return t }, qm.prototype.getMinorTicks = function (t) { }, qm.prototype.setSortInfo = function (t) { if (null != t) { for (var e = t.ordinalNumbers, n = this._ordinalNumbersByTick = [], i = this._ticksByOrdinalNumber = [], r = 0, o = this._ordinalMeta.categories.length, a = Math.min(o, e.length); r < a; ++r) { var s = e[r]; i[n[r] = s] = r } for (var l = 0; r < o; ++r) { for (; null != i[l];)l++; n.push(l), i[l] = r } } else this._ordinalNumbersByTick = this._ticksByOrdinalNumber = null }, qm.prototype._getTickNumber = function (t) { var e = this._ticksByOrdinalNumber; return e && 0 <= t && t < e.length ? e[t] : t }, qm.prototype.getRawOrdinalNumber = function (t) { var e = this._ordinalNumbersByTick; return e && 0 <= t && t < e.length ? e[t] : t }, qm.prototype.getLabel = function (t) { if (!this.isBlank()) return t = this.getRawOrdinalNumber(t.value), null == (t = this._ordinalMeta.categories[t]) ? "" : t + "" }, qm.prototype.count = function () { return this._extent[1] - this._extent[0] + 1 }, qm.prototype.unionExtentFromData = function (t, e) { this.unionExtent(t.getApproximateExtent(e)) }, qm.prototype.isInExtentRange = function (t) { return t = this._getTickNumber(t), this._extent[0] <= t && this._extent[1] >= t }, qm.prototype.getOrdinalMeta = function () { return this._ordinalMeta }, qm.prototype.calcNiceTicks = function () { }, qm.prototype.calcNiceExtent = function () { }, qm.type = "ordinal"; var Xm, Ym = qm; function qm(t) { var t = Xm.call(this, t) || this, e = (t.type = "ordinal", t.getSetting("ordinalMeta")); return V(e = e || new Rm({})) && (e = new Rm({ categories: F(e, function (t) { return R(t) ? t.value : t }) })), t._ordinalMeta = e, t._extent = t.getSetting("extent") || [0, e.categories.length - 1], t } Lm.registerClass(Ym); var Zm, jm = Zr, Km = (u($m, Zm = Lm), $m.prototype.parse = function (t) { return t }, $m.prototype.contain = function (t) { return Wm(t, this._extent) }, $m.prototype.normalize = function (t) { return Gm(t, this._extent) }, $m.prototype.scale = function (t) { return Um(t, this._extent) }, $m.prototype.setExtent = function (t, e) { var n = this._extent; isNaN(t) || (n[0] = parseFloat(t)), isNaN(e) || (n[1] = parseFloat(e)) }, $m.prototype.unionExtent = function (t) { var e = this._extent; t[0] < e[0] && (e[0] = t[0]), t[1] > e[1] && (e[1] = t[1]), this.setExtent(e[0], e[1]) }, $m.prototype.getInterval = function () { return this._interval }, $m.prototype.setInterval = function (t) { this._interval = t, this._niceExtent = this._extent.slice(), this._intervalPrecision = Vm(t) }, $m.prototype.getTicks = function (t) { var e = this._interval, n = this._extent, i = this._niceExtent, r = this._intervalPrecision, o = []; if (e) { n[0] < i[0] && o.push(t ? { value: jm(i[0] - e, r) } : { value: n[0] }); for (var a = i[0]; a <= i[1] && (o.push({ value: a }), (a = jm(a + e, r)) !== o[o.length - 1].value);)if (1e4 < o.length) return []; var s = o.length ? o[o.length - 1].value : i[1]; n[1] > s && o.push(t ? { value: jm(s + e, r) } : { value: n[1] }) } return o }, $m.prototype.getMinorTicks = function (t) { for (var e = this.getTicks(!0), n = [], i = this.getExtent(), r = 1; r < e.length; r++) { for (var o = e[r], a = e[r - 1], s = 0, l = [], u = (o.value - a.value) / t; s < t - 1;) { var h = jm(a.value + (s + 1) * u); h > i[0] && h < i[1] && l.push(h), s++ } n.push(l) } return n }, $m.prototype.getLabel = function (t, e) { return null == t ? "" : (null == (e = e && e.precision) ? e = jr(t.value) || 0 : "auto" === e && (e = this._intervalPrecision), $c(jm(t.value, e, !0))) }, $m.prototype.calcNiceTicks = function (t, e, n) { t = t || 5; var i = this._extent, r = i[1] - i[0]; isFinite(r) && (r < 0 && i.reverse(), r = Bm(i, t, e, n), this._intervalPrecision = r.intervalPrecision, this._interval = r.interval, this._niceExtent = r.niceTickExtent) }, $m.prototype.calcNiceExtent = function (t) { var e = this._extent, n = (e[0] === e[1] && (0 !== e[0] ? (n = Math.abs(e[0]), t.fixMax || (e[1] += n / 2), e[0] -= n / 2) : e[1] = 1), e[1] - e[0]), n = (isFinite(n) || (e[0] = 0, e[1] = 1), this.calcNiceTicks(t.splitNumber, t.minInterval, t.maxInterval), this._interval); t.fixMin || (e[0] = jm(Math.floor(e[0] / n) * n)), t.fixMax || (e[1] = jm(Math.ceil(e[1] / n) * n)) }, $m.prototype.setNiceExtent = function (t, e) { this._niceExtent = [t, e] }, $m.type = "interval", $m); function $m() { var t = null !== Zm && Zm.apply(this, arguments) || this; return t.type = "interval", t._interval = 0, t._intervalPrecision = 2, t } Lm.registerClass(Km); var Qm = "undefined" != typeof Float32Array, Jm = Qm ? Float32Array : Array; function tv(t) { return V(t) ? Qm ? new Float32Array(t) : t : new Jm(t) } function ev(t) { return t.get("stack") || "__ec_stack_" + t.seriesIndex } function nv(t) { return t.dim + t.index } function iv(t, e) { var n = []; return e.eachSeriesByType(t, function (t) { var e; (e = t).coordinateSystem && "cartesian2d" === e.coordinateSystem.type && n.push(t) }), n } function rv(t) { var a, d, u = function (t) { var e, l = {}, n = (O(t, function (t) { var e = t.coordinateSystem.getBaseAxis(); if ("time" === e.type || "value" === e.type) for (var t = t.getData(), n = e.dim + "_" + e.index, i = t.getDimensionIndex(t.mapDimension(e.dim)), r = t.getStore(), o = 0, a = r.count(); o < a; ++o) { var s = r.get(i, o); l[n] ? l[n].push(s) : l[n] = [s] } }), {}); for (e in l) if (l.hasOwnProperty(e)) { var i = l[e]; if (i) { i.sort(function (t, e) { return t - e }); for (var r = null, o = 1; o < i.length; ++o) { var a = i[o] - i[o - 1]; 0 < a && (r = null === r ? a : Math.min(r, a)) } n[e] = r } } return n }(t), h = []; return O(t, function (t) { var e, n, i = t.coordinateSystem.getBaseAxis(), r = i.getExtent(), o = (e = "category" === i.type ? i.getBandWidth() : "value" === i.type || "time" === i.type ? (e = i.dim + "_" + i.index, e = u[e], o = Math.abs(r[1] - r[0]), n = i.scale.getExtent(), n = Math.abs(n[1] - n[0]), e ? o / n * e : o) : (n = t.getData(), Math.abs(r[1] - r[0]) / n.count()), qr(t.get("barWidth"), e)), r = qr(t.get("barMaxWidth"), e), a = qr(t.get("barMinWidth") || ((n = t).pipelineContext && n.pipelineContext.large ? .5 : 1), e), s = t.get("barGap"), l = t.get("barCategoryGap"); h.push({ bandWidth: e, barWidth: o, barMaxWidth: r, barMinWidth: a, barGap: s, barCategoryGap: l, axisKey: nv(i), stackId: ev(t) }) }), a = {}, O(h, function (t, e) { var n = t.axisKey, i = t.bandWidth, i = a[n] || { bandWidth: i, remainedWidth: i, autoWidthCount: 0, categoryGap: null, gap: "20%", stacks: {} }, r = i.stacks, n = (a[n] = i, t.stackId), o = (r[n] || i.autoWidthCount++, r[n] = r[n] || { width: 0, maxWidth: 0 }, t.barWidth), o = (o && !r[n].width && (r[n].width = o, o = Math.min(i.remainedWidth, o), i.remainedWidth -= o), t.barMaxWidth), o = (o && (r[n].maxWidth = o), t.barMinWidth), r = (o && (r[n].minWidth = o), t.barGap), n = (null != r && (i.gap = r), t.barCategoryGap); null != n && (i.categoryGap = n) }), d = {}, O(a, function (t, n) { d[n] = {}; var e = t.stacks, i = t.bandWidth, r = t.categoryGap, o = (null == r && (o = D(e).length, r = Math.max(35 - 4 * o, 15) + "%"), qr(r, i)), a = qr(t.gap, 1), s = t.remainedWidth, l = t.autoWidthCount, u = (s - o) / (l + (l - 1) * a), u = Math.max(u, 0); O(e, function (t) { var e, n = t.maxWidth, i = t.minWidth; t.width ? (e = t.width, n && (e = Math.min(e, n)), i && (e = Math.max(e, i)), t.width = e, s -= e + a * e, l--) : (e = u, n && n < e && (e = Math.min(n, s)), (e = i && e < i ? i : e) !== u && (t.width = e, s -= e + a * e, l--)) }), u = (s - o) / (l + (l - 1) * a), u = Math.max(u, 0); var h, c = 0, p = (O(e, function (t, e) { t.width || (t.width = u), c += (h = t).width * (1 + a) }), h && (c -= h.width * a), -c / 2); O(e, function (t, e) { d[n][e] = d[n][e] || { bandWidth: i, offset: p, width: t.width }, p += t.width * (1 + a) }) }), d } u(lv, ov = Km), lv.prototype.getLabel = function (t) { var e = this.getSetting("useUTC"); return Nc(t.value, Ac[function (t) { switch (t) { case "year": case "month": return "day"; case "millisecond": return "millisecond"; default: return "second" } }(Rc(this._minLevelUnit))] || Ac.second, e, this.getSetting("locale")) }, lv.prototype.getFormattedLabel = function (t, e, n) { var i = this.getSetting("useUTC"), r = this.getSetting("locale"), o = null; if (H(n)) o = n; else if (S(n)) o = n(t.value, e, { level: t.level }); else { var a = P({}, Dc); if (0 < t.level) for (var s = 0; s < Lc.length; ++s)a[Lc[s]] = "{primary|" + a[Lc[s]] + "}"; var l = n ? !1 === n.inherit ? n : B(n, a) : a, u = Ec(t.value, i); if (l[u]) o = l[u]; else if (l.inherit) { for (s = Pc.indexOf(u) - 1; 0 <= s; --s)if (l[u]) { o = l[u]; break } o = o || a.none } V(o) && (e = null == t.level ? 0 : 0 <= t.level ? t.level : o.length + t.level, o = o[e = Math.min(e, o.length - 1)]) } return Nc(new Date(t.value), o, i, r) }, lv.prototype.getTicks = function () { var t = this._interval, e = this._extent, n = []; return t && (n.push({ value: e[0], level: 0 }), t = this.getSetting("useUTC"), t = function (t, b, S, M) { var e = Pc, n = 0; function i(t, e, n) { var i, r, o = [], a = !e.length; if (!function (t, e, n, i) { function r(t) { return zc(c, t, i) === zc(p, t, i) } function o() { return r("year") } function a() { return o() && r("month") } function s() { return a() && r("day") } function l() { return s() && r("hour") } function u() { return l() && r("minute") } function h() { return u() && r("second") } var c = eo(e), p = eo(n); switch (t) { case "year": return o(); case "month": return a(); case "day": return s(); case "hour": return l(); case "minute": return u(); case "second": return h(); case "millisecond": return h() && r("millisecond") } }(Rc(t), M[0], M[1], S)) { a && (e = [{ value: function (t, e, n) { var i = new Date(t); switch (Rc(e)) { case "year": case "month": i[Xc(n)](0); case "day": i[Yc(n)](1); case "hour": i[qc(n)](0); case "minute": i[Zc(n)](0); case "second": i[jc(n)](0), i[Kc(n)](0) }return i.getTime() }(new Date(M[0]), t, S) }, { value: M[1] }]); for (var s = 0; s < e.length - 1; s++) { var l = e[s].value, u = e[s + 1].value; if (l !== u) { var h = void 0, c = void 0, p = void 0; switch (t) { case "year": h = Math.max(1, Math.round(b / kc / 365)), c = Bc(S), p = S ? "setUTCFullYear" : "setFullYear"; break; case "half-year": case "quarter": case "month": r = b, h = 6 < (r /= 30 * kc) ? 6 : 3 < r ? 3 : 2 < r ? 2 : 1, c = Fc(S), p = Xc(S); break; case "week": case "half-week": case "day": r = b, h = 16 < (r /= kc) ? 16 : 7.5 < r ? 7 : 3.5 < r ? 4 : 1.5 < r ? 2 : 1, c = Vc(S), p = Yc(S); break; case "half-day": case "quarter-day": case "hour": i = b, h = 12 < (i /= Cc) ? 12 : 6 < i ? 6 : 3.5 < i ? 4 : 2 < i ? 2 : 1, c = Hc(S), p = qc(S); break; case "minute": h = uv(b, !0), c = Wc(S), p = Zc(S); break; case "second": h = uv(b, !1), c = Gc(S), p = jc(S); break; case "millisecond": h = ro(b, !0), c = Uc(S), p = Kc(S) }w = x = _ = v = m = y = g = f = d = void 0; for (var d = h, f = l, g = u, y = c, m = p, v = o, _ = new Date(f), x = f, w = _[y](); x < g && x <= M[1];)v.push({ value: x }), _[m](w += d), x = _.getTime(); v.push({ value: x, notAdd: !0 }), "year" === t && 1 < n.length && 0 === s && n.unshift({ value: n[0].value - h }) } } for (s = 0; s < o.length; s++)n.push(o[s]) } } for (var r = [], o = [], a = 0, s = 0, l = 0; l < e.length && n++ < 1e4; ++l) { var u = Rc(e[l]); if (function (t) { return t === Rc(t) }(e[l]) && (i(e[l], r[r.length - 1] || [], o), u !== (e[l + 1] ? Rc(e[l + 1]) : null))) { if (o.length) { s = a, o.sort(function (t, e) { return t.value - e.value }); for (var h = [], c = 0; c < o.length; ++c) { var p = o[c].value; 0 !== c && o[c - 1].value === p || (h.push(o[c]), p >= M[0] && p <= M[1] && a++) } u = (M[1] - M[0]) / b; if (1.5 * u < a && u / 1.5 < s) break; if (r.push(h), u < a || t === e[l]) break } o = [] } } var d = ut(F(r, function (t) { return ut(t, function (t) { return t.value >= M[0] && t.value <= M[1] && !t.notAdd }) }), function (t) { return 0 < t.length }), f = [], g = d.length - 1; for (l = 0; l < d.length; ++l)for (var y = d[l], m = 0; m < y.length; ++m)f.push({ value: y[m].value, level: g - l }); f.sort(function (t, e) { return t.value - e.value }); var v = []; for (l = 0; l < f.length; ++l)0 !== l && f[l].value === f[l - 1].value || v.push(f[l]); return v }(this._minLevelUnit, this._approxInterval, t, e), (n = n.concat(t)).push({ value: e[1], level: 0 })), n }, lv.prototype.calcNiceExtent = function (t) { var e, n = this._extent; n[0] === n[1] && (n[0] -= kc, n[1] += kc), n[1] === -1 / 0 && n[0] === 1 / 0 && (e = new Date, n[1] = +new Date(e.getFullYear(), e.getMonth(), e.getDate()), n[0] = n[1] - kc), this.calcNiceTicks(t.splitNumber, t.minInterval, t.maxInterval) }, lv.prototype.calcNiceTicks = function (t, e, n) { var i = this._extent, i = i[1] - i[0], i = (this._approxInterval = i / (t = t || 10), null != e && this._approxInterval < e && (this._approxInterval = e), null != n && this._approxInterval > n && (this._approxInterval = n), sv.length), t = Math.min(function (t, e, n, i) { for (; n < i;) { var r = n + i >>> 1; t[r][1] < e ? n = 1 + r : i = r } return n }(sv, this._approxInterval, 0, i), i - 1); this._interval = sv[t][1], this._minLevelUnit = sv[Math.max(t - 1, 0)][0] }, lv.prototype.parse = function (t) { return dt(t) ? t : +eo(t) }, lv.prototype.contain = function (t) { return Wm(this.parse(t), this._extent) }, lv.prototype.normalize = function (t) { return Gm(this.parse(t), this._extent) }, lv.prototype.scale = function (t) { return Um(t, this._extent) }, lv.type = "time"; var ov, av = lv, sv = [["second", Mc], ["minute", Tc], ["hour", Cc], ["quarter-day", 6 * Cc], ["half-day", 12 * Cc], ["day", 1.2 * kc], ["half-week", 3.5 * kc], ["week", 7 * kc], ["month", 31 * kc], ["quarter", 95 * kc], ["half-year", Bo / 2], ["year", Bo]]; function lv(t) { t = ov.call(this, t) || this; return t.type = "time", t } function uv(t, e) { return 30 < (t /= e ? Tc : Mc) ? 30 : 20 < t ? 20 : 15 < t ? 15 : 10 < t ? 10 : 5 < t ? 5 : 2 < t ? 2 : 1 } Lm.registerClass(av); var hv, cv = Lm.prototype, pv = Km.prototype, dv = Zr, fv = Math.floor, gv = Math.ceil, yv = Math.pow, mv = Math.log, vv = (u(_v, hv = Lm), _v.prototype.getTicks = function (t) { var e = this._originalScale, n = this._extent, i = e.getExtent(); return F(pv.getTicks.call(this, t), function (t) { var t = t.value, e = Zr(yv(this.base, t)), e = t === n[0] && this._fixMin ? xv(e, i[0]) : e; return { value: t === n[1] && this._fixMax ? xv(e, i[1]) : e } }, this) }, _v.prototype.setExtent = function (t, e) { var n = mv(this.base); t = mv(Math.max(0, t)) / n, e = mv(Math.max(0, e)) / n, pv.setExtent.call(this, t, e) }, _v.prototype.getExtent = function () { var t = this.base, e = cv.getExtent.call(this), t = (e[0] = yv(t, e[0]), e[1] = yv(t, e[1]), this._originalScale.getExtent()); return this._fixMin && (e[0] = xv(e[0], t[0])), this._fixMax && (e[1] = xv(e[1], t[1])), e }, _v.prototype.unionExtent = function (t) { this._originalScale.unionExtent(t); var e = this.base; t[0] = mv(t[0]) / mv(e), t[1] = mv(t[1]) / mv(e), cv.unionExtent.call(this, t) }, _v.prototype.unionExtentFromData = function (t, e) { this.unionExtent(t.getApproximateExtent(e)) }, _v.prototype.calcNiceTicks = function (t) { t = t || 10; var e = this._extent, n = e[1] - e[0]; if (!(n == 1 / 0 || n <= 0)) { var i = no(n); for (t / n * i <= .5 && (i *= 10); !isNaN(i) && Math.abs(i) < 1 && 0 < Math.abs(i);)i *= 10; t = [Zr(gv(e[0] / i) * i), Zr(fv(e[1] / i) * i)]; this._interval = i, this._niceExtent = t } }, _v.prototype.calcNiceExtent = function (t) { pv.calcNiceExtent.call(this, t), this._fixMin = t.fixMin, this._fixMax = t.fixMax }, _v.prototype.parse = function (t) { return t }, _v.prototype.contain = function (t) { return Wm(t = mv(t) / mv(this.base), this._extent) }, _v.prototype.normalize = function (t) { return Gm(t = mv(t) / mv(this.base), this._extent) }, _v.prototype.scale = function (t) { return t = Um(t, this._extent), yv(this.base, t) }, _v.type = "log", _v), Yg = vv.prototype; function _v() { var t = null !== hv && hv.apply(this, arguments) || this; return t.type = "log", t.base = 10, t._originalScale = new Km, t._interval = 0, t } function xv(t, e) { return dv(t, jr(e)) } Yg.getMinorTicks = pv.getMinorTicks, Yg.getLabel = pv.getLabel, Lm.registerClass(vv); bv.prototype._prepareParams = function (t, e, n) { n[1] < n[0] && (n = [NaN, NaN]), this._dataMin = n[0], this._dataMax = n[1]; var i = this._isOrdinal = "ordinal" === t.type, r = (this._needCrossZero = "interval" === t.type && e.getNeedCrossZero && e.getNeedCrossZero(), this._modelMinRaw = e.get("min", !0)), r = (S(r) ? this._modelMinNum = Tv(t, r({ min: n[0], max: n[1] })) : "dataMin" !== r && (this._modelMinNum = Tv(t, r)), this._modelMaxRaw = e.get("max", !0)); S(r) ? this._modelMaxNum = Tv(t, r({ min: n[0], max: n[1] })) : "dataMax" !== r && (this._modelMaxNum = Tv(t, r)), i ? this._axisDataLen = e.getCategories().length : "boolean" == typeof (t = V(n = e.get("boundaryGap")) ? n : [n || 0, n || 0])[0] || "boolean" == typeof t[1] ? this._boundaryGapInner = [0, 0] : this._boundaryGapInner = [Sr(t[0], 1), Sr(t[1], 1)] }, bv.prototype.calculate = function () { var t = this._isOrdinal, e = this._dataMin, n = this._dataMax, i = this._axisDataLen, r = this._boundaryGapInner, o = t ? null : n - e || Math.abs(e), a = "dataMin" === this._modelMinRaw ? e : this._modelMinNum, s = "dataMax" === this._modelMaxRaw ? n : this._modelMaxNum, l = null != a, u = null != s, e = (null == a && (a = t ? i ? 0 : NaN : e - r[0] * o), null == s && (s = t ? i ? i - 1 : NaN : n + r[1] * o), null != a && isFinite(a) || (a = NaN), null != s && isFinite(s) || (s = NaN), xt(a) || xt(s) || t && !i), n = (this._needCrossZero && (a = 0 < a && 0 < s && !l ? 0 : a) < 0 && s < 0 && !u && (s = 0), this._determinedMin), r = this._determinedMax; return null != n && (a = n, l = !0), null != r && (s = r, u = !0), { min: a, max: s, minFixed: l, maxFixed: u, isBlank: e } }, bv.prototype.modifyDataMinMax = function (t, e) { this[Mv[t]] = e }, bv.prototype.setDeterminedMinMax = function (t, e) { this[Sv[t]] = e }, bv.prototype.freeze = function () { this.frozen = !0 }; var wv = bv; function bv(t, e, n) { this._prepareParams(t, e, n) } var Sv = { min: "_determinedMin", max: "_determinedMax" }, Mv = { min: "_dataMin", max: "_dataMax" }; function Tv(t, e) { return null == e ? null : xt(e) ? NaN : t.parse(e) } function Cv(t, e) { var n, i, r, o, a, s, l = t.type, u = (c = e, u = (h = t).getExtent(), (h.rawExtentInfo || (c = new wv(h, c, u), h.rawExtentInfo = c)).calculate()), h = (t.setBlank(u.isBlank), u.min), c = u.max, t = e.ecModel; return t && "time" === l && (l = iv("bar", t), n = !1, O(l, function (t) { n = n || t.getBaseAxis() === e.axis }), n) && (t = rv(l), l = h, i = c, t = t, s = (s = (r = e).axis.getExtent())[1] - s[0], h = (t = void 0 === (t = function (t, e, n) { if (t && e) return null != (t = t[nv(e)]) && null != n ? t[ev(n)] : t }(t, r.axis)) ? { min: l, max: i } : (o = 1 / 0, O(t, function (t) { o = Math.min(t.offset, o) }), a = -1 / 0, O(t, function (t) { a = Math.max(t.offset + t.width, a) }), o = Math.abs(o), a = Math.abs(a), { min: l -= o / (r = o + a) * (s = (t = i - l) / (1 - (o + a) / s) - t), max: i += a / r * s })).min, c = t.max), { extent: [h, c], fixMin: u.minFixed, fixMax: u.maxFixed } } function kv(t, e) { var n = Cv(t, e), i = n.extent, r = e.get("splitNumber"), o = (t instanceof vv && (t.base = e.get("logBase")), t.type), a = e.get("interval"), o = "interval" === o || "time" === o; t.setExtent(i[0], i[1]), t.calcNiceExtent({ splitNumber: r, fixMin: n.fixMin, fixMax: n.fixMax, minInterval: o ? e.get("minInterval") : null, maxInterval: o ? e.get("maxInterval") : null }), null != a && t.setInterval && t.setInterval(a) } function Dv(t, e) { if (e = e || t.get("type")) switch (e) { case "category": return new Ym({ ordinalMeta: t.getOrdinalMeta ? t.getOrdinalMeta() : t.getCategories(), extent: [1 / 0, -1 / 0] }); case "time": return new av({ locale: t.ecModel.getLocaleModel(), useUTC: t.ecModel.get("useUTC") }); default: return new (Lm.getClass(e) || Km) } } function Iv(r) { var o, n, e, t = r.getLabelModel().get("formatter"), a = "category" === r.type ? r.scale.getExtent()[0] : null; return "time" === r.scale.type ? (n = t, function (t, e) { return r.scale.getFormattedLabel(t, e, n) }) : H(t) ? (e = t, function (t) { t = r.scale.getLabel(t); return e.replace("{value}", null != t ? t : "") }) : S(t) ? (o = t, function (t, e) { return null != a && (e = t.value - a), o((i = t, "category" === (n = r).type ? n.scale.getLabel(i) : i.value), e, null != t.level ? { level: t.level } : null); var n, i }) : function (t) { return r.scale.getLabel(t) } } function Av(t) { var e, n, i, r = t.model, o = t.scale; if (r.get(["axisLabel", "show"]) && !o.isBlank()) { var a, s, l = o.getExtent(), u = o instanceof Ym ? o.count() : (a = o.getTicks()).length, h = t.getLabelModel(), c = Iv(t), p = 1; 40 < u && (p = Math.ceil(u / 40)); for (var d = 0; d < u; d += p) { var f = c(a ? a[d] : { value: l[0] + d }, d), g = (f = h.getTextRect(f), e = h.get("rotate") || 0, n = i = g = n = void 0, e = e * Math.PI / 180, n = f.width, g = f.height, i = n * Math.abs(Math.cos(e)) + Math.abs(g * Math.sin(e)), n = n * Math.abs(Math.sin(e)) + Math.abs(g * Math.cos(e)), new z(f.x, f.y, i, n)); s ? s.union(g) : s = g } return s } } function Lv(t) { t = t.get("interval"); return null == t ? "auto" : t } function Pv(t) { return "category" === t.type && 0 === Lv(t.getLabelModel()) } Rv.prototype.getNeedCrossZero = function () { return !this.option.scale }, Rv.prototype.getCoordSysModel = function () { }; var Ov = Rv; function Rv() { } var Kg = Object.freeze({ __proto__: null, createDimensions: function (t, e) { return Sm(t, e).dimensions }, createList: function (t) { return Am(null, t) }, createScale: function (t, e) { var n = e; return (e = Dv(n = e instanceof dc ? n : new dc(e))).setExtent(t[0], t[1]), kv(e, n), e }, createSymbol: ny, createTextStyle: function (t, e) { return Yh(t, null, null, "normal" !== (e = e || {}).state) }, dataStack: { isDimensionStacked: Dm, enableDataStack: km, getStackedDimension: Im }, enableHoverEmphasis: Il, getECData: Fs, getLayoutRect: sp, mixinAxisModelCommonMethods: function (t) { at(t, Ov) } }), Nv = [], Ev = { registerPreprocessor: R0, registerProcessor: N0, registerPostInit: E0, registerPostUpdate: z0, registerUpdateLifecycle: B0, registerAction: F0, registerCoordinateSystem: V0, registerLayout: H0, registerVisual: W0, registerTransform: q0, registerLoading: X0, registerMap: Y0, registerImpl: function (t, e) { Ny[t] = e }, PRIORITY: jg, ComponentModel: g, ComponentView: eg, SeriesModel: qf, ChartView: ag, registerComponentModel: function (t) { g.registerClass(t) }, registerComponentView: function (t) { eg.registerClass(t) }, registerSeriesModel: function (t) { qf.registerClass(t) }, registerChartView: function (t) { ag.registerClass(t) }, registerSubTypeDefaulter: function (t, e) { g.registerSubTypeDefaulter(t, e) }, registerPainter: function (t, e) { Gr(t, e) } }; function zv(t) { V(t) ? O(t, function (t) { zv(t) }) : 0 <= k(Nv, t) || (Nv.push(t), (t = S(t) ? { install: t } : t).install(Ev)) } var Bv = 1e-8; function Fv(t, e) { return Math.abs(t - e) < Bv } function Vv(t, e, n) { var i = 0, r = t[0]; if (r) { for (var o = 1; o < t.length; o++) { var a = t[o]; i += qa(r[0], r[1], a[0], a[1], e, n), r = a } var s = t[0]; return Fv(r[0], s[0]) && Fv(r[1], s[1]) || (i += qa(r[0], r[1], s[0], s[1], e, n)), 0 !== i } } var Hv = []; function Wv(t, e) { for (var n = 0; n < t.length; n++)ee(t[n], t[n], e) } function Gv(t, e, n, i) { for (var r = 0; r < t.length; r++) { var o = t[r]; (o = i ? i.project(o) : o) && isFinite(o[0]) && isFinite(o[1]) && (ne(e, e, o), ie(n, n, o)) } } Uv.prototype.setCenter = function (t) { this._center = t }, Uv.prototype.getCenter = function () { return this._center || (this._center = this.calcCenter()) }; $g = Uv; function Uv(t) { this.name = t } function Xv(t, e) { this.type = "polygon", this.exterior = t, this.interiors = e } function Yv(t) { this.type = "linestring", this.points = t } u(Kv, qv = $g), Kv.prototype.calcCenter = function () { for (var t, e, n = this.geometries, i = 0, r = 0; r < n.length; r++) { var o = n[r], a = o.exterior, a = a && a.length; i < a && (t = o, i = a) } if (t) { for (var s = t.exterior, l = 0, u = 0, h = 0, c = s.length, p = s[c - 1][0], d = s[c - 1][1], f = 0; f < c; f++) { var g = s[f][0], y = s[f][1], m = p * y - g * d; l += m, u += (p + g) * m, h += (d + y) * m, p = g, d = y } return l ? [u / l / 3, h / l / 3, l] : [s[0][0] || 0, s[0][1] || 0] } return [(e = this.getBoundingRect()).x + e.width / 2, e.y + e.height / 2] }, Kv.prototype.getBoundingRect = function (e) { var n, i, t = this._rect; return t && !e || (n = [1 / 0, 1 / 0], i = [-1 / 0, -1 / 0], O(this.geometries, function (t) { "polygon" === t.type ? Gv(t.exterior, n, i, e) : O(t.points, function (t) { Gv(t, n, i, e) }) }), isFinite(n[0]) && isFinite(n[1]) && isFinite(i[0]) && isFinite(i[1]) || (n[0] = n[1] = i[0] = i[1] = 0), t = new z(n[0], n[1], i[0] - n[0], i[1] - n[1]), e) || (this._rect = t), t }, Kv.prototype.contain = function (t) { var e = this.getBoundingRect(), n = this.geometries; if (e.contain(t[0], t[1])) t: for (var i = 0, r = n.length; i < r; i++) { var o = n[i]; if ("polygon" === o.type) { var a = o.exterior, s = o.interiors; if (Vv(a, t[0], t[1])) { for (var l = 0; l < (s ? s.length : 0); l++)if (Vv(s[l], t[0], t[1])) continue t; return !0 } } } return !1 }, Kv.prototype.transformTo = function (t, e, n, i) { var r = this.getBoundingRect(), o = r.width / r.height; n ? i = i || n / o : n = o * i; for (var o = new z(t, e, n, i), a = r.calculateTransform(o), s = this.geometries, l = 0; l < s.length; l++) { var u = s[l]; "polygon" === u.type ? (Wv(u.exterior, a), O(u.interiors, function (t) { Wv(t, a) })) : O(u.points, function (t) { Wv(t, a) }) } (r = this._rect).copy(o), this._center = [r.x + r.width / 2, r.y + r.height / 2] }, Kv.prototype.cloneShallow = function (t) { t = new Kv(t = null == t ? this.name : t, this.geometries, this._center); return t._rect = this._rect, t.transformTo = null, t }; var qv, Zv, jv = Kv; function Kv(t, e, n) { t = qv.call(this, t) || this; return t.type = "geoJSON", t.geometries = e, t._center = n && [n[0], n[1]], t } function $v(t, e) { t = Zv.call(this, t) || this; return t.type = "geoSVG", t._elOnlyForCalculate = e, t } function Qv(t, e, n) { for (var i = 0; i < t.length; i++)t[i] = Jv(t[i], e[i], n) } function Jv(t, e, n) { for (var i = [], r = e[0], o = e[1], a = 0; a < t.length; a += 2) { var s = (s = t.charCodeAt(a) - 64) >> 1 ^ -(1 & s), l = (l = t.charCodeAt(a + 1) - 64) >> 1 ^ -(1 & l), r = s += r, o = l += o; i.push([s / n, l / n]) } return i } function t_(t, o) { return F(ut((t = (e = t).UTF8Encoding ? (null == (r = (n = e).UTF8Scale) && (r = 1024), O(n.features, function (t) { var e = t.geometry, n = e.encodeOffsets, i = e.coordinates; if (n) switch (e.type) { case "LineString": e.coordinates = Jv(i, n, r); break; case "Polygon": case "MultiLineString": Qv(i, n, r); break; case "MultiPolygon": O(i, function (t, e) { return Qv(t, n[e], r) }) } }), n.UTF8Encoding = !1, n) : e).features, function (t) { return t.geometry && t.properties && 0 < t.geometry.coordinates.length }), function (t) { var e = t.properties, n = t.geometry, i = []; switch (n.type) { case "Polygon": var r = n.coordinates; i.push(new Xv(r[0], r.slice(1))); break; case "MultiPolygon": O(n.coordinates, function (t) { t[0] && i.push(new Xv(t[0], t.slice(1))) }); break; case "LineString": i.push(new Yv([n.coordinates])); break; case "MultiLineString": i.push(new Yv(n.coordinates)) }t = new jv(e[o || "name"], i, e.cp); return t.properties = e, t }); var e, n, r } u($v, Zv = $g), $v.prototype.calcCenter = function () { for (var t = this._elOnlyForCalculate, e = t.getBoundingRect(), e = [e.x + e.width / 2, e.y + e.height / 2], n = Pe(Hv), i = t; i && !i.isGeoSVGGraphicRoot;)Re(n, i.getLocalTransform(), n), i = i.parent; return Be(n, n), ee(e, e, n), e }; var Uo = Object.freeze({ __proto__: null, MAX_SAFE_INTEGER: 9007199254740991, asc: function (t) { return t.sort(function (t, e) { return t - e }), t }, getPercentWithPrecision: function (t, e, n) { return t[e] && function (t, e) { var n = lt(t, function (t, e) { return t + (isNaN(e) ? 0 : e) }, 0); if (0 === n) return []; for (var i = Math.pow(10, e), e = F(t, function (t) { return (isNaN(t) ? 0 : t) / n * i * 100 }), r = 100 * i, o = F(e, function (t) { return Math.floor(t) }), a = lt(o, function (t, e) { return t + e }, 0), s = F(e, function (t, e) { return t - o[e] }); a < r;) { for (var l = Number.NEGATIVE_INFINITY, u = null, h = 0, c = s.length; h < c; ++h)s[h] > l && (l = s[h], u = h); ++o[u], s[u] = 0, ++a } return F(o, function (t) { return t / i }) }(t, n)[e] || 0 }, getPixelPrecision: $r, getPrecision: jr, getPrecisionSafe: Kr, isNumeric: ao, isRadianAroundZero: Jr, linearMap: Yr, nice: ro, numericToNumber: oo, parseDate: eo, quantile: function (t, e) { var e = (t.length - 1) * e + 1, n = Math.floor(e), i = +t[n - 1]; return (e = e - n) ? i + e * (t[n] - i) : i }, quantity: no, quantityExponent: io, reformIntervals: function (t) { t.sort(function (t, e) { return function t(e, n, i) { return e.interval[i] < n.interval[i] || e.interval[i] === n.interval[i] && (e.close[i] - n.close[i] == (i ? -1 : 1) || !i && t(e, n, 1)) }(t, e, 0) ? -1 : 1 }); for (var e = -1 / 0, n = 1, i = 0; i < t.length;) { for (var r = t[i].interval, o = t[i].close, a = 0; a < 2; a++)r[a] <= e && (r[a] = e, o[a] = a ? 1 : 1 - n), e = r[a], n = o[a]; r[0] === r[1] && o[0] * o[1] != 1 ? t.splice(i, 1) : i++ } return t }, remRadian: Qr, round: Zr }), nc = Object.freeze({ __proto__: null, format: Nc, parse: eo }), Ic = Object.freeze({ __proto__: null, Arc: th, BezierCurve: Ku, BoundingRect: z, Circle: ou, CompoundPath: ih, Ellipse: uu, Group: zr, Image: fs, IncrementalDisplayable: i, Line: Uu, LinearGradient: lh, Polygon: Nu, Polyline: Fu, RadialGradient: oh, Rect: bs, Ring: Au, Sector: Cu, Text: ks, clipPointsByRect: function (t, n) { return F(t, function (t) { var e = t[0], e = kh(e, n.x), t = (e = Dh(e, n.x + n.width), t[1]), t = kh(t, n.y); return [e, Dh(t, n.y + n.height)] }) }, clipRectByRect: function (t, e) { var n = kh(t.x, e.x), i = Dh(t.x + t.width, e.x + e.width), r = kh(t.y, e.y), t = Dh(t.y + t.height, e.y + e.height); if (n <= i && r <= t) return { x: n, y: r, width: i - n, height: t - r } }, createIcon: function (t, e, n) { var i = (e = P({ rectHover: !0 }, e)).style = { strokeNoScale: !0 }; if (n = n || { x: -1, y: -1, width: 2, height: 2 }, t) return 0 === t.indexOf("image://") ? (i.image = t.slice(8), B(i, n), new fs(e)) : Ph(t.replace("path://", ""), e, n, "center") }, extendPath: function (t, e) { return Ah(t, e) }, extendShape: function (t) { return as.extend(t) }, getShapeClass: function (t) { if (Ih.hasOwnProperty(t)) return Ih[t] }, getTransform: function (t, e) { for (var n = Pe([]); t && t !== e;)Re(n, t.getLocalTransform(), n), t = t.parent; return n }, initProps: Mh, makeImage: Oh, makePath: Ph, mergePath: Nh, registerShape: Lh, resizePath: Eh, updateProps: Sh }), lc = Object.freeze({ __proto__: null, addCommas: $c, capitalFirst: function (t) { return t && t.charAt(0).toUpperCase() + t.substr(1) }, encodeHTML: ve, formatTime: function (t, e, n) { "week" !== t && "month" !== t && "quarter" !== t && "half-year" !== t && "year" !== t || (t = "MM-dd\nyyyy"); var i = (e = eo(e))[(n = n ? "getUTC" : "get") + "FullYear"](), r = e[n + "Month"]() + 1, o = e[n + "Date"](), a = e[n + "Hours"](), s = e[n + "Minutes"](), l = e[n + "Seconds"](), e = e[n + "Milliseconds"](); return t.replace("MM", Oc(r, 2)).replace("M", r).replace("yyyy", i).replace("yy", Oc(i % 100 + "", 2)).replace("dd", Oc(o, 2)).replace("d", o).replace("hh", Oc(a, 2)).replace("h", a).replace("mm", Oc(s, 2)).replace("m", s).replace("ss", Oc(l, 2)).replace("s", l).replace("SSS", Oc(e, 3)) }, formatTpl: ep, getTextRect: function (t, e, n, i, r, o, a, s) { return new ks({ style: { text: t, font: e, align: n, verticalAlign: i, padding: r, rich: o, overflow: a ? "truncate" : null, lineHeight: s } }).getBoundingRect() }, getTooltipMarker: function (t, e) { var n = (t = H(t) ? { color: t, extraCssText: e } : t || {}).color, i = t.type, r = (e = t.extraCssText, t.renderMode || "html"); return n ? "html" === r ? "subItem" === i ? '<span style="display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;border-radius:4px;width:4px;height:4px;background-color:' + ve(n) + ";" + (e || "") + '"></span>' : '<span style="display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:' + ve(n) + ";" + (e || "") + '"></span>' : { renderMode: r, content: "{" + (t.markerId || "markerX") + "|}  ", style: "subItem" === i ? { width: 4, height: 4, borderRadius: 2, backgroundColor: n } : { width: 10, height: 10, borderRadius: 5, backgroundColor: n } } : "" }, normalizeCssArray: Jc, toCamelCase: function (t, e) { return t = (t || "").toLowerCase().replace(/-(.)/g, function (t, e) { return e.toUpperCase() }), t = e ? t && t.charAt(0).toUpperCase() + t.slice(1) : t }, truncateText: $o }), rc = Object.freeze({ __proto__: null, bind: ht, clone: y, curry: ct, defaults: B, each: O, extend: P, filter: ut, indexOf: k, inherits: ot, isArray: V, isFunction: S, isObject: R, isString: H, map: F, merge: d, reduce: lt }), e_ = Mo(); function n_(t) { return "category" === t.type ? (r = (e = t).getLabelModel(), o = r_(e, r), !r.get("show") || e.scale.isBlank() ? { labels: [], labelCategoryInterval: o.labelCategoryInterval } : o) : (r = (n = t).scale.getTicks(), i = Iv(n), { labels: F(r, function (t, e) { return { level: t.level, formattedLabel: i(t, e), rawLabel: n.scale.getLabel(t), tickValue: t.value } }) }); var n, i, e, r, o } function i_(t, e) { var n, i, r, o, a, s; return "category" === t.type ? (e = e, o = o_(n = t, "ticks"), a = Lv(e), (s = a_(o, a)) || (e.get("show") && !n.scale.isBlank() || (i = []), i = S(a) ? u_(n, a, !0) : "auto" === a ? (s = r_(n, n.getLabelModel()), r = s.labelCategoryInterval, F(s.labels, function (t) { return t.tickValue })) : l_(n, r = a, !0), s_(o, a, { ticks: i, tickCategoryInterval: r }))) : { ticks: F(t.scale.getTicks(), function (t) { return t.value }) } } function r_(t, e) { var n, i = o_(t, "labels"), e = Lv(e); return a_(i, e) || s_(i, e, { labels: S(e) ? u_(t, e) : l_(t, n = "auto" === e ? null != (t = e_(i = t).autoInterval) ? t : e_(i).autoInterval = i.calculateCategoryInterval() : e), labelCategoryInterval: n }) } function o_(t, e) { return e_(t)[e] || (e_(t)[e] = []) } function a_(t, e) { for (var n = 0; n < t.length; n++)if (t[n].key === e) return t[n].value } function s_(t, e, n) { return t.push({ key: e, value: n }), n } function l_(t, e, n) { var i = Iv(t), r = t.scale, o = r.getExtent(), a = t.getLabelModel(), s = [], l = Math.max((e || 0) + 1, 1), e = o[0], u = r.count(), u = (0 !== e && 1 < l && 2 < u / l && (e = Math.round(Math.ceil(e / l) * l)), Pv(t)), t = a.get("showMinLabel") || u, a = a.get("showMaxLabel") || u; t && e !== o[0] && c(o[0]); for (var h = e; h <= o[1]; h += l)c(h); function c(t) { var e = { value: t }; s.push(n ? t : { formattedLabel: i(e), rawLabel: r.getLabel(e), tickValue: t }) } return a && h - l !== o[1] && c(o[1]), s } function u_(t, i, r) { var o = t.scale, a = Iv(t), s = []; return O(o.getTicks(), function (t) { var e = o.getLabel(t), n = t.value; i(t.value, e) && s.push(r ? n : { formattedLabel: a(t), rawLabel: e, tickValue: n }) }), s } var h_ = [0, 1], hc = (c_.prototype.contain = function (t) { var e = this._extent, n = Math.min(e[0], e[1]), e = Math.max(e[0], e[1]); return n <= t && t <= e }, c_.prototype.containData = function (t) { return this.scale.contain(t) }, c_.prototype.getExtent = function () { return this._extent.slice() }, c_.prototype.getPixelPrecision = function (t) { return $r(t || this.scale.getExtent(), this._extent) }, c_.prototype.setExtent = function (t, e) { var n = this._extent; n[0] = t, n[1] = e }, c_.prototype.dataToCoord = function (t, e) { var n = this._extent, i = this.scale; return t = i.normalize(t), this.onBand && "ordinal" === i.type && p_(n = n.slice(), i.count()), Yr(t, h_, n, e) }, c_.prototype.coordToData = function (t, e) { var n = this._extent, i = this.scale, i = (this.onBand && "ordinal" === i.type && p_(n = n.slice(), i.count()), Yr(t, n, h_, e)); return this.scale.scale(i) }, c_.prototype.pointToData = function (t, e) { }, c_.prototype.getTicksCoords = function (t) { var e, n, i, r, o = (t = t || {}).tickModel || this.getTickModel(), a = F(i_(this, o).ticks, function (t) { return { coord: this.dataToCoord("ordinal" === this.scale.type ? this.scale.getRawOrdinalNumber(t) : t), tickValue: t } }, this), s = this, l = a, o = o.get("alignWithLabel"), t = t.clamp, u = l.length; function h(t, e) { return t = Zr(t), e = Zr(e), r ? e < t : t < e } return s.onBand && !o && u && (o = s.getExtent(), 1 === u ? (l[0].coord = o[0], e = l[1] = { coord: o[1] }) : (n = l[u - 1].tickValue - l[0].tickValue, i = (l[u - 1].coord - l[0].coord) / n, O(l, function (t) { t.coord -= i / 2 }), n = 1 + s.scale.getExtent()[1] - l[u - 1].tickValue, e = { coord: l[u - 1].coord + i * n }, l.push(e)), r = o[0] > o[1], h(l[0].coord, o[0]) && (t ? l[0].coord = o[0] : l.shift()), t && h(o[0], l[0].coord) && l.unshift({ coord: o[0] }), h(o[1], e.coord) && (t ? e.coord = o[1] : l.pop()), t) && h(e.coord, o[1]) && l.push({ coord: o[1] }), a }, c_.prototype.getMinorTicksCoords = function () { var t; return "ordinal" === this.scale.type ? [] : (t = this.model.getModel("minorTick").get("splitNumber"), F(this.scale.getMinorTicks(t = 0 < t && t < 100 ? t : 5), function (t) { return F(t, function (t) { return { coord: this.dataToCoord(t), tickValue: t } }, this) }, this)) }, c_.prototype.getViewLabels = function () { return n_(this).labels }, c_.prototype.getLabelModel = function () { return this.model.getModel("axisLabel") }, c_.prototype.getTickModel = function () { return this.model.getModel("axisTick") }, c_.prototype.getBandWidth = function () { var t = this._extent, e = this.scale.getExtent(), e = e[1] - e[0] + (this.onBand ? 1 : 0), t = (0 === e && (e = 1), Math.abs(t[1] - t[0])); return Math.abs(t) / e }, c_.prototype.calculateCategoryInterval = function () { r = (n = d = this).getLabelModel(); var t = { axisRotate: n.getRotate ? n.getRotate() : n.isHorizontal && !n.isHorizontal() ? 90 : 0, labelRotate: r.get("rotate") || 0, font: r.getFont() }, e = Iv(d), n = (t.axisRotate - t.labelRotate) / 180 * Math.PI, i = (r = d.scale).getExtent(), r = r.count(); if (i[1] - i[0] < 1) return 0; var o = 1; 40 < r && (o = Math.max(1, Math.floor(r / 40))); for (var a = i[0], s = d.dataToCoord(a + 1) - d.dataToCoord(a), l = Math.abs(s * Math.cos(n)), s = Math.abs(s * Math.sin(n)), u = 0, h = 0; a <= i[1]; a += o)var c = 1.3 * (p = _r(e({ value: a }), t.font, "center", "top")).width, p = 1.3 * p.height, u = Math.max(u, c, 7), h = Math.max(h, p, 7); var n = u / l, l = h / s, s = (isNaN(n) && (n = 1 / 0), isNaN(l) && (l = 1 / 0), Math.max(0, Math.floor(Math.min(n, l)))), n = e_(d.model), l = d.getExtent(), d = n.lastAutoInterval, f = n.lastTickCount; return null != d && null != f && Math.abs(d - s) <= 1 && Math.abs(f - r) <= 1 && s < d && n.axisExtent0 === l[0] && n.axisExtent1 === l[1] ? s = d : (n.lastTickCount = r, n.lastAutoInterval = s, n.axisExtent0 = l[0], n.axisExtent1 = l[1]), s }, c_); function c_(t, e, n) { this.onBand = !1, this.inverse = !1, this.dim = t, this.scale = e, this._extent = n || [0, 0] } function p_(t, e) { e = (t[1] - t[0]) / e / 2; t[0] += e, t[1] -= e } var d_ = 2 * Math.PI, f_ = Wa.CMD, g_ = ["top", "right", "bottom", "left"]; function y_(t, e, n, i, r, o, a, s) { var l = r - t, u = o - e, n = n - t, i = i - e, h = Math.sqrt(n * n + i * i), l = (l * (n /= h) + u * (i /= h)) / h, u = (s && (l = Math.min(Math.max(l, 0), 1)), a[0] = t + (l *= h) * n), s = a[1] = e + l * i; return Math.sqrt((u - r) * (u - r) + (s - o) * (s - o)) } function m_(t, e, n, i, r, o, a) { n < 0 && (t += n, n = -n), i < 0 && (e += i, i = -i); n = t + n, i = e + i, t = a[0] = Math.min(Math.max(r, t), n), n = a[1] = Math.min(Math.max(o, e), i); return Math.sqrt((t - r) * (t - r) + (n - o) * (n - o)) } var v_ = []; function __(t, e, n) { for (var i, r, o, a, s, l, u, h, c, p = 0, d = 0, f = 0, g = 0, y = 1 / 0, m = e.data, v = t.x, _ = t.y, x = 0; x < m.length;) { var w = m[x++], b = (1 === x && (f = p = m[x], g = d = m[x + 1]), y); switch (w) { case f_.M: p = f = m[x++], d = g = m[x++]; break; case f_.L: b = y_(p, d, m[x], m[x + 1], v, _, v_, !0), p = m[x++], d = m[x++]; break; case f_.C: b = Vn(p, d, m[x++], m[x++], m[x++], m[x++], m[x], m[x + 1], v, _, v_), p = m[x++], d = m[x++]; break; case f_.Q: b = Xn(p, d, m[x++], m[x++], m[x], m[x + 1], v, _, v_), p = m[x++], d = m[x++]; break; case f_.A: var S = m[x++], M = m[x++], T = m[x++], C = m[x++], k = m[x++], D = m[x++], I = (x += 1, !!(1 - m[x++])), A = Math.cos(k) * T + S, L = Math.sin(k) * C + M; x <= 1 && (f = A, g = L), L = (A = k) + D, I = I, a = (v - (i = S)) * (o = C) / T + S, s = _, l = v_, c = h = u = void 0, a -= i, s -= r = M, u = Math.sqrt(a * a + s * s), h = (a /= u) * o + i, c = (s /= u) * o + r, b = Math.abs(A - L) % d_ < 1e-4 || ((L = I ? (I = A, A = Xa(L), Xa(I)) : (A = Xa(A), Xa(L))) < A && (L += d_), (I = Math.atan2(s, a)) < 0 && (I += d_), A <= I && I <= L) || A <= I + d_ && I + d_ <= L ? (l[0] = h, l[1] = c, u - o) : (c = ((I = o * Math.cos(A) + i) - a) * (I - a) + ((h = o * Math.sin(A) + r) - s) * (h - s)) < (i = ((u = o * Math.cos(L) + i) - a) * (u - a) + ((A = o * Math.sin(L) + r) - s) * (A - s)) ? (l[0] = I, l[1] = h, Math.sqrt(c)) : (l[0] = u, l[1] = A, Math.sqrt(i)), p = Math.cos(k + D) * T + S, d = Math.sin(k + D) * C + M; break; case f_.R: b = m_(f = p = m[x++], g = d = m[x++], m[x++], m[x++], v, _, v_); break; case f_.Z: b = y_(p, d, f, g, v, _, v_, !0), p = f, d = g }b < y && (y = b, n.set(v_[0], v_[1])) } return y } var x_ = new M, w_ = new M, b_ = new M, S_ = new M, M_ = new M; function T_(t, e) { if (t) { var n = t.getTextGuideLine(), i = t.getTextContent(); if (i && n) { var r = t.textGuideLineConfig || {}, o = [[0, 0], [0, 0], [0, 0]], a = r.candidates || g_, s = i.getBoundingRect().clone(), l = (s.applyTransform(i.getComputedTransform()), 1 / 0), u = r.anchor, h = t.getComputedTransform(), c = h && Be([], h), p = e.get("length2") || 0; u && b_.copy(u); for (var d, f = 0; f < a.length; f++) { w = x = _ = v = m = y = g = void 0; var g = a[f], y = 0, m = s, v = x_, _ = S_, x = m.width, w = m.height; switch (g) { case "top": v.set(m.x + x / 2, m.y - y), _.set(0, -1); break; case "bottom": v.set(m.x + x / 2, m.y + w + y), _.set(0, 1); break; case "left": v.set(m.x - y, m.y + w / 2), _.set(-1, 0); break; case "right": v.set(m.x + x + y, m.y + w / 2), _.set(1, 0) }M.scaleAndAdd(w_, x_, S_, p), w_.transform(c); g = t.getBoundingRect(), g = u ? u.distance(w_) : t instanceof as ? __(w_, t.path, b_) : (S = b_, b = m_((b = g).x, g.y, g.width, g.height, w_.x, w_.y, v_), S.set(v_[0], v_[1]), b); g < l && (l = g, w_.transform(h), b_.transform(h), b_.toArray(o[0]), w_.toArray(o[1]), x_.toArray(o[2])) } i = o, r = e.get("minTurnAngle"); r <= 180 && 0 < r && (r = r / 180 * Math.PI, x_.fromArray(i[0]), w_.fromArray(i[1]), b_.fromArray(i[2]), M.sub(S_, x_, w_), M.sub(M_, b_, w_), e = S_.len(), d = M_.len(), e < .001 || d < .001 || (S_.scale(1 / e), M_.scale(1 / d), e = S_.dot(M_), Math.cos(r) < e && (d = y_(w_.x, w_.y, b_.x, b_.y, x_.x, x_.y, C_, !1), k_.fromArray(C_), k_.scaleAndAdd(M_, d / Math.tan(Math.PI - r)), e = b_.x !== w_.x ? (k_.x - w_.x) / (b_.x - w_.x) : (k_.y - w_.y) / (b_.y - w_.y), isNaN(e) || (e < 0 ? M.copy(k_, w_) : 1 < e && M.copy(k_, b_), k_.toArray(i[1]))))), n.setShape({ points: o }) } } var b, S } var C_ = [], k_ = new M; function D_(t, e, n, i) { var r = "normal" === n, n = r ? t : t.ensureState(n), e = (n.ignore = e, i.get("smooth")), e = (e && !0 === e && (e = .3), n.shape = n.shape || {}, 0 < e && (n.shape.smooth = e), i.getModel("lineStyle").getLineStyle()); r ? t.useStyle(e) : n.style = e } function I_(t, e) { var n = e.smooth, i = e.points; if (i) if (t.moveTo(i[0][0], i[0][1]), 0 < n && 3 <= i.length) { var e = $t(i[0], i[1]), r = $t(i[1], i[2]); e && r ? (n = Math.min(e, r) * n, e = te([], i[1], i[0], n / e), n = te([], i[1], i[2], n / r), r = te([], e, n, .5), t.bezierCurveTo(e[0], e[1], e[0], e[1], r[0], r[1]), t.bezierCurveTo(n[0], n[1], n[0], n[1], i[2][0], i[2][1])) : (t.lineTo(i[1][0], i[1][1]), t.lineTo(i[2][0], i[2][1])) } else for (var o = 1; o < i.length; o++)t.lineTo(i[o][0], i[o][1]) } function A_(t) { for (var e = [], n = 0; n < t.length; n++) { var i, r, o, a, s, l, u = t[n]; u.defaultAttr.ignore || (r = (i = u.label).getComputedTransform(), o = i.getBoundingRect(), a = !r || r[1] < 1e-5 && r[2] < 1e-5, l = i.style.margin || 0, (s = o.clone()).applyTransform(r), s.x -= l / 2, s.y -= l / 2, s.width += l, s.height += l, l = a ? new yh(o, r) : null, e.push({ label: i, labelLine: u.labelLine, rect: s, localRect: o, obb: l, priority: u.priority, defaultAttr: u.defaultAttr, layoutOption: u.computedLayoutOption, axisAligned: a, transform: r })) } return e } function L_(s, l, u, t, e, n) { var h = s.length; if (!(h < 2)) { s.sort(function (t, e) { return t.rect[l] - e.rect[l] }); for (var i, r = 0, o = !1, a = [], c = 0, p = 0; p < h; p++) { var d = s[p], f = d.rect, d = ((i = f[l] - r) < 0 && (f[l] -= i, d.label[l] -= i, o = !0), Math.max(-i, 0)); a.push(d), c += d, r = f[l] + f[u] } 0 < c && n && w(-c / h, 0, h); var g, y, m = s[0], v = s[h - 1]; return _(), g < 0 && b(-g, .8), y < 0 && b(y, .8), _(), x(g, y, 1), x(y, g, -1), _(), g < 0 && S(-g), y < 0 && S(y), o } function _() { g = m.rect[l] - t, y = e - v.rect[l] - v.rect[u] } function x(t, e, n) { t < 0 && (0 < (e = Math.min(e, -t)) ? (w(e * n, 0, h), (e = e + t) < 0 && b(-e * n, 1)) : b(-t * n, 1)) } function w(t, e, n) { 0 !== t && (o = !0); for (var i = e; i < n; i++) { var r = s[i]; r.rect[l] += t, r.label[l] += t } } function b(t, e) { for (var n = [], i = 0, r = 1; r < h; r++) { var o = s[r - 1].rect, o = Math.max(s[r].rect[l] - o[l] - o[u], 0); n.push(o), i += o } if (i) { var a = Math.min(Math.abs(t) / i, e); if (0 < t) for (r = 0; r < h - 1; r++)w(n[r] * a, 0, r + 1); else for (r = h - 1; 0 < r; r--)w(-n[r - 1] * a, r, h) } } function S(t) { var e = t < 0 ? -1 : 1; t = Math.abs(t); for (var n = Math.ceil(t / (h - 1)), i = 0; i < h - 1; i++)if (0 < e ? w(n, 0, i + 1) : w(-n, h - i - 1, h), (t -= n) <= 0) return } } function P_(t) { var e = [], n = (t.sort(function (t, e) { return e.priority - t.priority }), new z(0, 0, 0, 0)); function i(t) { var e; t.ignore || null == (e = t.ensureState("emphasis")).ignore && (e.ignore = !1), t.ignore = !0 } for (var r = 0; r < t.length; r++) { var o = t[r], a = o.axisAligned, s = o.localRect, l = o.transform, u = o.label, h = o.labelLine; n.copy(o.rect), n.width -= .1, n.height -= .1, n.x += .05, n.y += .05; for (var c = o.obb, p = !1, d = 0; d < e.length; d++) { var f = e[d]; if (n.intersect(f.rect)) { if (a && f.axisAligned) { p = !0; break } if (f.obb || (f.obb = new yh(f.localRect, f.transform)), (c = c || new yh(s, l)).intersect(f.obb)) { p = !0; break } } } p ? (i(u), h && i(h)) : (u.attr("ignore", o.defaultAttr.ignore), h && h.attr("ignore", o.defaultAttr.labelGuideIgnore), e.push(o)) } } function O_(t, e) { var n = t.label, e = e && e.getTextGuideLine(); return { dataIndex: t.dataIndex, dataType: t.dataType, seriesIndex: t.seriesModel.seriesIndex, text: t.label.style.text, rect: t.hostRect, labelRect: t.rect, align: n.style.align, verticalAlign: n.style.verticalAlign, labelLinePoints: function (t) { if (t) { for (var e = [], n = 0; n < t.length; n++)e.push(t[n].slice()); return e } }(e && e.shape.points) } } var R_ = ["align", "verticalAlign", "width", "height", "fontSize"], N_ = new dr, E_ = Mo(), z_ = Mo(); function B_(t, e, n) { for (var i = 0; i < n.length; i++) { var r = n[i]; null != e[r] && (t[r] = e[r]) } } var F_ = ["x", "y", "rotation"], V_ = (H_.prototype.clearLabels = function () { this._labelList = [], this._chartViewList = [] }, H_.prototype._addLabel = function (t, e, n, i, r) { var o = i.style, a = i.__hostTarget.textConfig || {}, s = i.getComputedTransform(), l = i.getBoundingRect().plain(); z.applyTransform(l, l, s), s ? N_.setLocalTransform(s) : (N_.x = N_.y = N_.rotation = N_.originX = N_.originY = 0, N_.scaleX = N_.scaleY = 1), N_.rotation = Xa(N_.rotation); var u, s = i.__hostTarget, h = (s && (u = s.getBoundingRect().plain(), h = s.getComputedTransform(), z.applyTransform(u, u, h)), u && s.getTextGuideLine()); this._labelList.push({ label: i, labelLine: h, seriesModel: n, dataIndex: t, dataType: e, layoutOption: r, computedLayoutOption: null, rect: l, hostRect: u, priority: u ? u.width * u.height : 0, defaultAttr: { ignore: i.ignore, labelGuideIgnore: h && h.ignore, x: N_.x, y: N_.y, scaleX: N_.scaleX, scaleY: N_.scaleY, rotation: N_.rotation, style: { x: o.x, y: o.y, align: o.align, verticalAlign: o.verticalAlign, width: o.width, height: o.height, fontSize: o.fontSize }, cursor: i.cursor, attachedPos: a.position, attachedRot: a.rotation } }) }, H_.prototype.addLabelsOfSeries = function (t) { var n = this, i = (this._chartViewList.push(t), t.__model), r = i.get("labelLayout"); (S(r) || D(r).length) && t.group.traverse(function (t) { if (t.ignore) return !0; var e = t.getTextContent(), t = Fs(t); e && !e.disableLabelLayout && n._addLabel(t.dataIndex, t.dataType, i, e, r) }) }, H_.prototype.updateLayoutConfig = function (t) { var e = t.getWidth(), n = t.getHeight(); for (var i = 0; i < this._labelList.length; i++) { var r = this._labelList[i], o = r.label, a = o.__hostTarget, s = r.defaultAttr, l = void 0, l = (S(r.layoutOption) ? r.layoutOption(O_(r, a)) : r.layoutOption) || {}, u = (r.computedLayoutOption = l, Math.PI / 180), h = (a && a.setTextConfig({ local: !1, position: null != l.x || null != l.y ? null : s.attachedPos, rotation: null != l.rotate ? l.rotate * u : s.attachedRot, offset: [l.dx || 0, l.dy || 0] }), !1); null != l.x ? (o.x = qr(l.x, e), o.setStyle("x", 0), h = !0) : (o.x = s.x, o.setStyle("x", s.style.x)), null != l.y ? (o.y = qr(l.y, n), o.setStyle("y", 0), h = !0) : (o.y = s.y, o.setStyle("y", s.style.y)), l.labelLinePoints && (c = a.getTextGuideLine()) && (c.setShape({ points: l.labelLinePoints }), h = !1), E_(o).needsUpdateLabelLine = h, o.rotation = null != l.rotate ? l.rotate * u : s.rotation, o.scaleX = s.scaleX, o.scaleY = s.scaleY; for (var c, p = 0; p < R_.length; p++) { var d = R_[p]; o.setStyle(d, (null != l[d] ? l : s.style)[d]) } l.draggable ? (o.draggable = !0, o.cursor = "move", a && (c = r.seriesModel, null != r.dataIndex && (c = r.seriesModel.getData(r.dataType).getItemModel(r.dataIndex)), o.on("drag", function (t, e) { return function () { T_(t, e) } }(a, c.getModel("labelLine"))))) : (o.off("drag"), o.cursor = s.cursor) } }, H_.prototype.layout = function (t) { var e, n, i = t.getWidth(), t = t.getHeight(), r = A_(this._labelList), o = ut(r, function (t) { return "shiftX" === t.layoutOption.moveOverlap }), a = ut(r, function (t) { return "shiftY" === t.layoutOption.moveOverlap }); L_(o, "x", "width", 0, i, n), L_(a, "y", "height", 0, t, e), P_(ut(r, function (t) { return t.layoutOption.hideOverlap })) }, H_.prototype.processLabelsOverall = function () { var a = this; O(this._chartViewList, function (t) { var i = t.__model, r = t.ignoreLabelLineUpdate, o = i.isAnimationEnabled(); t.group.traverse(function (t) { if (t.ignore && !t.forceLabelAnimation) return !0; var e = !r, n = t.getTextContent(); (e = !e && n ? E_(n).needsUpdateLabelLine : e) && a._updateLabelLine(t, i), o && a._animateLabels(t, i) }) }) }, H_.prototype._updateLabelLine = function (t, e) { var n = t.getTextContent(), i = Fs(t), r = i.dataIndex; if (n && null != r) { var n = e.getData(i.dataType), e = n.getItemModel(r), i = {}, r = n.getItemVisual(r, "style"), r = (r && (n = n.getVisual("drawType"), i.stroke = r[n]), e.getModel("labelLine")), o = t, a = function (t, e) { for (var n = { normal: t.getModel(e = e || "labelLine") }, i = 0; i < qs.length; i++) { var r = qs[i]; n[r] = t.getModel([r, e]) } return n }(e), n = i, s = o.getTextGuideLine(), l = o.getTextContent(); if (l) { for (var e = a.normal, u = e.get("show"), h = l.ignore, c = 0; c < Zs.length; c++) { var p, d = Zs[c], f = a[d], g = "normal" === d; f && (p = f.get("show"), (g ? h : N(l.states[d] && l.states[d].ignore, h)) || !N(p, u) ? (p = g ? s : s && s.states[d]) && (p.ignore = !0) : (s || (s = new Fu, o.setTextGuideLine(s), g || !h && u || D_(s, !0, "normal", a.normal), o.stateProxy && (s.stateProxy = o.stateProxy)), D_(s, !1, d, f))) } s && (B(s.style, n), s.style.fill = null, n = e.get("showAbove"), (o.textGuideLineConfig = o.textGuideLineConfig || {}).showAbove = n || !1, s.buildPath = I_) } else s && o.removeTextGuideLine(); T_(t, r) } }, H_.prototype._animateLabels = function (t, e) { var n, i, r, o, a, s, l, u, h, c, p, d, f, g = t.getTextContent(), y = t.getTextGuideLine(); !g || !t.forceLabelAnimation && (g.ignore || g.invisible || t.disableLabelAnimation || Th(t)) || (d = (f = E_(g)).oldLayout, n = (i = Fs(t)).dataIndex, s = { x: g.x, y: g.y, rotation: g.rotation }, i = e.getData(i.dataType), d ? (g.attr(d), (t = t.prevStates) && (0 <= k(t, "select") && g.attr(f.oldLayoutSelect), 0 <= k(t, "emphasis")) && g.attr(f.oldLayoutEmphasis), Sh(g, s, e, n)) : (g.attr(s), Qh(g).valueAnimation || (t = N(g.style.opacity, 1), g.style.opacity = 0, Mh(g, { style: { opacity: t } }, e, n))), f.oldLayout = s, g.states.select && (B_(t = f.oldLayoutSelect = {}, s, F_), B_(t, g.states.select, F_)), g.states.emphasis && (B_(t = f.oldLayoutEmphasis = {}, s, F_), B_(t, g.states.emphasis, F_)), o = n, a = i, l = s = e, (p = Qh(r = g)).valueAnimation && p.prevValue !== p.value && (u = p.defaultInterpolatedText, h = N(p.interpolatedValue, p.prevValue), c = p.value, r.percent = 0, (null == p.prevValue ? Mh : Sh)(r, { percent: 1 }, s, o, null, function (t) { var e = Lo(a, p.precision, h, c, t), t = (p.interpolatedValue = 1 === t ? null : e, Gh({ labelDataIndex: o, labelFetcher: l, defaultText: u ? u(e) : e + "" }, p.statesModels, e)); Wh(r, t) }))), !y || y.ignore || y.invisible || (d = (f = z_(y)).oldLayout, t = { points: y.shape.points }, d ? (y.attr({ shape: d }), Sh(y, { shape: t }, e)) : (y.setShape(t), y.style.strokePercent = 0, Mh(y, { style: { strokePercent: 1 } }, e)), f.oldLayout = t) }, H_); function H_() { this._labelList = [], this._chartViewList = [] } var W_ = Mo(); function G_(t) { t.registerUpdateLifecycle("series:beforeupdate", function (t, e, n) { (W_(e).labelManager || (W_(e).labelManager = new V_)).clearLabels() }), t.registerUpdateLifecycle("series:layoutlabels", function (t, e, n) { var i = W_(e).labelManager; n.updatedSeries.forEach(function (t) { i.addLabelsOfSeries(e.getViewOfSeriesModel(t)) }), i.updateLayoutConfig(e), i.layout(e), i.processLabelsOverall() }) } function U_(t, e, n) { var i = W.createCanvas(), r = e.getWidth(), e = e.getHeight(), o = i.style; return o && (o.position = "absolute", o.left = "0", o.top = "0", o.width = r + "px", o.height = e + "px", i.setAttribute("data-zr-dom-id", t)), i.width = r * n, i.height = e * n, i } zv(G_); u(q_, X_ = le), q_.prototype.getElementCount = function () { return this.__endIndex - this.__startIndex }, q_.prototype.afterBrush = function () { this.__prevStartIndex = this.__startIndex, this.__prevEndIndex = this.__endIndex }, q_.prototype.initContext = function () { this.ctx = this.dom.getContext("2d"), this.ctx.dpr = this.dpr }, q_.prototype.setUnpainted = function () { this.__firstTimePaint = !0 }, q_.prototype.createBackBuffer = function () { var t = this.dpr; this.domBack = U_("back-" + this.id, this.painter, t), this.ctxBack = this.domBack.getContext("2d"), 1 !== t && this.ctxBack.scale(t, t) }, q_.prototype.createRepaintRects = function (t, e, n, i) { if (this.__firstTimePaint) return this.__firstTimePaint = !1, null; var r, l = [], u = this.maxRepaintRectCount, h = !1, c = new z(0, 0, 0, 0); function o(t) { if (t.isFinite() && !t.isZero()) if (0 === l.length) (e = new z(0, 0, 0, 0)).copy(t), l.push(e); else { for (var e, n = !1, i = 1 / 0, r = 0, o = 0; o < l.length; ++o) { var a = l[o]; if (a.intersect(t)) { var s = new z(0, 0, 0, 0); s.copy(a), s.union(t), l[o] = s, n = !0; break } h && (c.copy(t), c.union(a), s = t.width * t.height, a = a.width * a.height, (a = c.width * c.height - s - a) < i) && (i = a, r = o) } h && (l[r].union(t), n = !0), n || ((e = new z(0, 0, 0, 0)).copy(t), l.push(e)), h = h || l.length >= u } } for (var a, s = this.__startIndex; s < this.__endIndex; ++s)(p = t[s]) && (f = p.shouldBePainted(n, i, !0, !0), (d = p.__isRendered && (p.__dirty & yn || !f) ? p.getPrevPaintRect() : null) && o(d), a = f && (p.__dirty & yn || !p.__isRendered) ? p.getPaintRect() : null) && o(a); for (s = this.__prevStartIndex; s < this.__prevEndIndex; ++s) { var p, d, f = (p = e[s]).shouldBePainted(n, i, !0, !0); !p || f && p.__zr || !p.__isRendered || (d = p.getPrevPaintRect()) && o(d) } do { for (r = !1, s = 0; s < l.length;)if (l[s].isZero()) l.splice(s, 1); else { for (var g = s + 1; g < l.length;)l[s].intersect(l[g]) ? (r = !0, l[s].union(l[g]), l.splice(g, 1)) : g++; s++ } } while (r); return this._paintRects = l }, q_.prototype.debugGetPaintRects = function () { return (this._paintRects || []).slice() }, q_.prototype.resize = function (t, e) { var n = this.dpr, i = this.dom, r = i.style, o = this.domBack; r && (r.width = t + "px", r.height = e + "px"), i.width = t * n, i.height = e * n, o && (o.width = t * n, o.height = e * n, 1 !== n) && this.ctxBack.scale(n, n) }, q_.prototype.clear = function (t, o, e) { var n = this.dom, a = this.ctx, i = n.width, r = n.height, s = (o = o || this.clearColor, this.motionBlur && !t), l = this.lastFrameAlpha, u = this.dpr, h = this, c = (s && (this.domBack || this.createBackBuffer(), this.ctxBack.globalCompositeOperation = "copy", this.ctxBack.drawImage(n, 0, 0, i / u, r / u)), this.domBack); function p(t, e, n, i) { var r; a.clearRect(t, e, n, i), o && "transparent" !== o && (r = void 0, mt(o) ? (r = (o.global || o.__width === n && o.__height === i) && o.__canvasGradient || oy(a, o, { x: 0, y: 0, width: n, height: i }), o.__canvasGradient = r, o.__width = n, o.__height = i) : vt(o) && (o.scaleX = o.scaleX || u, o.scaleY = o.scaleY || u, r = gy(a, o, { dirty: function () { h.setUnpainted(), h.__painter.refresh() } })), a.save(), a.fillStyle = r || o, a.fillRect(t, e, n, i), a.restore()), s && (a.save(), a.globalAlpha = l, a.drawImage(c, t, e, n, i), a.restore()) } !e || s ? p(0, 0, i, r) : e.length && O(e, function (t) { p(t.x * u, t.y * u, t.width * u, t.height * u) }) }; var X_, Y_ = q_; function q_(t, e, n) { var i, r = X_.call(this) || this, t = (r.motionBlur = !1, r.lastFrameAlpha = .7, r.dpr = 1, r.virtual = !1, r.config = {}, r.incremental = !1, r.zlevel = 0, r.maxRepaintRectCount = 5, r.__dirty = !0, r.__firstTimePaint = !0, r.__used = !1, r.__drawIndex = 0, r.__startIndex = 0, r.__endIndex = 0, r.__prevStartIndex = null, r.__prevEndIndex = null, n = n || rr, "string" == typeof t ? i = U_(t, e, n) : R(t) && (t = (i = t).id), r.id = t, (r.dom = i).style); return t && (zt(i), i.onselectstart = function () { return !1 }, t.padding = "0", t.margin = "0", t.borderWidth = "0"), r.painter = e, r.dpr = n, r } var Z_ = 314159; x.prototype.getType = function () { return "canvas" }, x.prototype.isSingleCanvas = function () { return this._singleCanvas }, x.prototype.getViewportRoot = function () { return this._domRoot }, x.prototype.getViewportRootOffset = function () { var t = this.getViewportRoot(); if (t) return { offsetLeft: t.offsetLeft || 0, offsetTop: t.offsetTop || 0 } }, x.prototype.refresh = function (t) { var e = this.storage.getDisplayList(!0), n = this._prevDisplayList, i = this._zlevelList; this._redrawId = Math.random(), this._paintList(e, n, t, this._redrawId); for (var r = 0; r < i.length; r++) { var o, a = i[r], a = this._layers[a]; !a.__builtin__ && a.refresh && (o = 0 === r ? this._backgroundColor : null, a.refresh(o)) } return this._opts.useDirtyRect && (this._prevDisplayList = e.slice()), this }, x.prototype.refreshHover = function () { this._paintHoverList(this.storage.getDisplayList(!1)) }, x.prototype._paintHoverList = function (t) { var e = t.length, n = this._hoverlayer; if (n && n.clear(), e) { for (var i, r = { inHover: !0, viewWidth: this._width, viewHeight: this._height }, o = 0; o < e; o++) { var a = t[o]; a.__inHover && (n = n || (this._hoverlayer = this.getLayer(1e5)), i || (i = n.ctx).save(), Dy(i, a, r, o === e - 1)) } i && i.restore() } }, x.prototype.getHoverLayer = function () { return this.getLayer(1e5) }, x.prototype.paintOne = function (t, e) { ky(t, e) }, x.prototype._paintList = function (t, e, n, i) { var r, o, a; this._redrawId === i && (n = n || !1, this._updateLayerStatus(t), r = (o = this._doPaintList(t, e, n)).finished, o = o.needsRefreshHover, this._needsManuallyCompositing && this._compositeManually(), o && this._paintHoverList(t), r ? this.eachLayer(function (t) { t.afterBrush && t.afterBrush() }) : (a = this, Sn(function () { a._paintList(t, e, n, i) }))) }, x.prototype._compositeManually = function () { var e = this.getLayer(Z_).ctx, n = this._domRoot.width, i = this._domRoot.height; e.clearRect(0, 0, n, i), this.eachBuiltinLayer(function (t) { t.virtual && e.drawImage(t.dom, 0, 0, n, i) }) }, x.prototype._doPaintList = function (d, f, g) { for (var y = this, m = [], v = this._opts.useDirtyRect, t = 0; t < this._zlevelList.length; t++) { var e = this._zlevelList[t], e = this._layers[e]; e.__builtin__ && e !== this._hoverlayer && (e.__dirty || g) && m.push(e) } for (var _ = !0, x = !1, w = this, n = 0; n < m.length; n++)!function (t) { function e(t) { var e = { inHover: !1, allClipped: !1, prevEl: null, viewWidth: y._width, viewHeight: y._height }; for (i = s; i < r.__endIndex; i++) { var n = d[i]; if (n.__inHover && (x = !0), y._doPaintEl(n, r, v, t, e, i === r.__endIndex - 1), l && 15 < Date.now() - u) break } e.prevElClipPaths && o.restore() } var i, n, r = m[t], o = r.ctx, a = v && r.createRepaintRects(d, f, w._width, w._height), s = g ? r.__startIndex : r.__drawIndex, l = !g && r.incremental && Date.now, u = l && Date.now(), t = r.zlevel === w._zlevelList[0] ? w._backgroundColor : null; r.__startIndex !== r.__endIndex && (s !== r.__startIndex || (n = d[s]).incremental && n.notClear && !g) || r.clear(!1, t, a), -1 === s && (console.error("For some unknown reason. drawIndex is -1"), s = r.__startIndex); if (a) if (0 === a.length) i = r.__endIndex; else for (var h = w.dpr, c = 0; c < a.length; ++c) { var p = a[c]; o.save(), o.beginPath(), o.rect(p.x * h, p.y * h, p.width * h, p.height * h), o.clip(), e(p), o.restore() } else o.save(), e(), o.restore(); r.__drawIndex = i, r.__drawIndex < r.__endIndex && (_ = !1) }(n); return p.wxa && O(this._layers, function (t) { t && t.ctx && t.ctx.draw && t.ctx.draw() }), { finished: _, needsRefreshHover: x } }, x.prototype._doPaintEl = function (t, e, n, i, r, o) { e = e.ctx; n ? (n = t.getPaintRect(), (!i || n && n.intersect(i)) && (Dy(e, t, r, o), t.setPrevPaintRect(n))) : Dy(e, t, r, o) }, x.prototype.getLayer = function (t, e) { this._singleCanvas && !this._needsManuallyCompositing && (t = Z_); var n = this._layers[t]; return n || ((n = new Y_("zr_" + t, this, this.dpr)).zlevel = t, n.__builtin__ = !0, this._layerConfig[t] ? d(n, this._layerConfig[t], !0) : this._layerConfig[t - .01] && d(n, this._layerConfig[t - .01], !0), e && (n.virtual = e), this.insertLayer(t, n), n.initContext()), n }, x.prototype.insertLayer = function (t, e) { var n, i = this._layers, r = this._zlevelList, o = r.length, a = this._domRoot, s = null, l = -1; if (!i[t] && (n = e) && (n.__builtin__ || "function" == typeof n.resize && "function" == typeof n.refresh)) { if (0 < o && t > r[0]) { for (l = 0; l < o - 1 && !(r[l] < t && r[l + 1] > t); l++); s = i[r[l]] } r.splice(l + 1, 0, t), (i[t] = e).virtual || (s ? (n = s.dom).nextSibling ? a.insertBefore(e.dom, n.nextSibling) : a.appendChild(e.dom) : a.firstChild ? a.insertBefore(e.dom, a.firstChild) : a.appendChild(e.dom)), e.__painter = this } }, x.prototype.eachLayer = function (t, e) { for (var n = this._zlevelList, i = 0; i < n.length; i++) { var r = n[i]; t.call(e, this._layers[r], r) } }, x.prototype.eachBuiltinLayer = function (t, e) { for (var n = this._zlevelList, i = 0; i < n.length; i++) { var r = n[i], o = this._layers[r]; o.__builtin__ && t.call(e, o, r) } }, x.prototype.eachOtherLayer = function (t, e) { for (var n = this._zlevelList, i = 0; i < n.length; i++) { var r = n[i], o = this._layers[r]; o.__builtin__ || t.call(e, o, r) } }, x.prototype.getLayers = function () { return this._layers }, x.prototype._updateLayerStatus = function (t) { function e(t) { r && (r.__endIndex !== t && (r.__dirty = !0), r.__endIndex = t) } if (this.eachBuiltinLayer(function (t, e) { t.__dirty = t.__used = !1 }), this._singleCanvas) for (var n = 1; n < t.length; n++)if ((s = t[n]).zlevel !== t[n - 1].zlevel || s.incremental) { this._needsManuallyCompositing = !0; break } for (var i, r = null, o = 0, a = 0; a < t.length; a++) { var s, l = (s = t[a]).zlevel, u = void 0; i !== l && (i = l, o = 0), s.incremental ? ((u = this.getLayer(l + .001, this._needsManuallyCompositing)).incremental = !0, o = 1) : u = this.getLayer(l + (0 < o ? .01 : 0), this._needsManuallyCompositing), u.__builtin__ || it("ZLevel " + l + " has been used by unkown layer " + u.id), u !== r && (u.__used = !0, u.__startIndex !== a && (u.__dirty = !0), u.__startIndex = a, u.incremental ? u.__drawIndex = -1 : u.__drawIndex = a, e(a), r = u), s.__dirty & yn && !s.__inHover && (u.__dirty = !0, u.incremental) && u.__drawIndex < 0 && (u.__drawIndex = a) } e(a), this.eachBuiltinLayer(function (t, e) { !t.__used && 0 < t.getElementCount() && (t.__dirty = !0, t.__startIndex = t.__endIndex = t.__drawIndex = 0), t.__dirty && t.__drawIndex < 0 && (t.__drawIndex = t.__startIndex) }) }, x.prototype.clear = function () { return this.eachBuiltinLayer(this._clearLayer), this }, x.prototype._clearLayer = function (t) { t.clear() }, x.prototype.setBackgroundColor = function (t) { this._backgroundColor = t, O(this._layers, function (t) { t.setUnpainted() }) }, x.prototype.configLayer = function (t, e) { if (e) { var n = this._layerConfig; n[t] ? d(n[t], e, !0) : n[t] = e; for (var i = 0; i < this._zlevelList.length; i++) { var r = this._zlevelList[i]; r !== t && r !== t + .01 || d(this._layers[r], n[t], !0) } } }, x.prototype.delLayer = function (t) { var e = this._layers, n = this._zlevelList, i = e[t]; i && (i.dom.parentNode.removeChild(i.dom), delete e[t], n.splice(k(n, t), 1)) }, x.prototype.resize = function (t, e) { if (this._domRoot.style) { var n = this._domRoot, i = (n.style.display = "none", this._opts), r = this.root; if (null != t && (i.width = t), null != e && (i.height = e), t = sy(r, 0, i), e = sy(r, 1, i), n.style.display = "", this._width !== t || e !== this._height) { for (var o in n.style.width = t + "px", n.style.height = e + "px", this._layers) this._layers.hasOwnProperty(o) && this._layers[o].resize(t, e); this.refresh(!0) } this._width = t, this._height = e } else { if (null == t || null == e) return; this._width = t, this._height = e, this.getLayer(Z_).resize(t, e) } return this }, x.prototype.clearLayer = function (t) { t = this._layers[t]; t && t.clear() }, x.prototype.dispose = function () { this.root.innerHTML = "", this.root = this.storage = this._domRoot = this._layers = null }, x.prototype.getRenderedCanvas = function (t) { if (this._singleCanvas && !this._compositeManually) return this._layers[Z_].dom; var e = new Y_("image", this, (t = t || {}).pixelRatio || this.dpr), n = (e.initContext(), e.clear(!1, t.backgroundColor || this._backgroundColor), e.ctx); if (t.pixelRatio <= this.dpr) { this.refresh(); var i = e.dom.width, r = e.dom.height; this.eachLayer(function (t) { t.__builtin__ ? n.drawImage(t.dom, 0, 0, i, r) : t.renderToCanvas && (n.save(), t.renderToCanvas(n), n.restore()) }) } else for (var o = { inHover: !1, viewWidth: this._width, viewHeight: this._height }, a = this.storage.getDisplayList(!0), s = 0, l = a.length; s < l; s++) { var u = a[s]; Dy(n, u, o, s === l - 1) } return e.dom }, x.prototype.getWidth = function () { return this._width }, x.prototype.getHeight = function () { return this._height }; var j_ = x; function x(t, e, n, i) { this.type = "canvas", this._zlevelList = [], this._prevDisplayList = [], this._layers = {}, this._layerConfig = {}, this._needsManuallyCompositing = !1, this.type = "canvas"; var r, o, a = !t.nodeName || "CANVAS" === t.nodeName.toUpperCase(), e = (this._opts = n = P({}, n || {}), this.dpr = n.devicePixelRatio || rr, this._singleCanvas = a, (this.root = t).style && (zt(t), t.innerHTML = ""), this.storage = e, this._zlevelList), s = (this._prevDisplayList = [], this._layers); a ? (r = (a = t).width, o = a.height, null != n.width && (r = n.width), null != n.height && (o = n.height), this.dpr = n.devicePixelRatio || 1, a.width = r * this.dpr, a.height = o * this.dpr, this._width = r, this._height = o, (r = new Y_(a, this, this.dpr)).__builtin__ = !0, r.initContext(), (s[Z_] = r).zlevel = Z_, e.push(Z_), this._domRoot = t) : (this._width = sy(t, 0, n), this._height = sy(t, 1, n), r = this._domRoot = (o = this._width, a = this._height, (s = document.createElement("div")).style.cssText = ["position:relative", "width:" + o + "px", "height:" + a + "px", "padding:0", "margin:0", "border-width:0"].join(";") + ";", s), t.appendChild(r)) } u(Q_, K_ = g), Q_.prototype.init = function (t, e, n) { K_.prototype.init.call(this, t, e, n), this._sourceManager = new zf(this), Ff(this) }, Q_.prototype.mergeOption = function (t, e) { K_.prototype.mergeOption.call(this, t, e), Ff(this) }, Q_.prototype.optionUpdated = function () { this._sourceManager.dirty() }, Q_.prototype.getSourceManager = function () { return this._sourceManager }, Q_.type = "dataset", Q_.defaultOption = { seriesLayoutBy: Cp }; var K_, $_ = Q_; function Q_() { var t = null !== K_ && K_.apply(this, arguments) || this; return t.type = "dataset", t } u(e1, J_ = eg), e1.type = "dataset"; var J_, t1 = e1; function e1() { var t = null !== J_ && J_.apply(this, arguments) || this; return t.type = "dataset", t } function n1(t) { t.registerComponentModel($_), t.registerComponentView(t1) } zv([function (t) { t.registerPainter("canvas", j_) }, n1]), zv(G_); u(o1, i1 = qf), o1.prototype.getInitialData = function (t) { return Am(null, this, { useEncodeDefaulter: !0 }) }, o1.prototype.getLegendIcon = function (t) { var e = new zr, n = ny("line", 0, t.itemHeight / 2, t.itemWidth, 0, t.lineStyle.stroke, !1), n = (e.add(n), n.setStyle(t.lineStyle), this.getData().getVisual("symbol")), i = this.getData().getVisual("symbolRotate"), n = "none" === n ? "circle" : n, r = .8 * t.itemHeight, r = ny(n, (t.itemWidth - r) / 2, (t.itemHeight - r) / 2, r, r, t.itemStyle.fill), i = (e.add(r), r.setStyle(t.itemStyle), "inherit" === t.iconRotate ? i : t.iconRotate || 0); return r.rotation = i * Math.PI / 180, r.setOrigin([t.itemWidth / 2, t.itemHeight / 2]), -1 < n.indexOf("empty") && (r.style.stroke = r.style.fill, r.style.fill = "#fff", r.style.lineWidth = 2), e }, o1.type = "series.line", o1.dependencies = ["grid", "polar"], o1.defaultOption = { z: 3, coordinateSystem: "cartesian2d", legendHoverLink: !0, clip: !0, label: { position: "top" }, endLabel: { show: !1, valueAnimation: !0, distance: 8 }, lineStyle: { width: 2, type: "solid" }, emphasis: { scale: !0 }, step: !1, smooth: !1, smoothMonotone: null, symbol: "emptyCircle", symbolSize: 4, symbolRotate: null, showSymbol: !0, showAllSymbol: "auto", connectNulls: !1, sampling: "none", animationEasing: "linear", progressive: 0, hoverLayerThreshold: 1 / 0, universalTransition: { divideShape: "clone" }, triggerLineEvent: !1 }; var i1, r1 = o1; function o1() { var t = null !== i1 && i1.apply(this, arguments) || this; return t.type = o1.type, t.hasSymbolVisual = !0, t } function a1(t, e) { var n, i = t.mapDimensionsAll("defaultedLabel"), r = i.length; if (1 === r) return null != (n = Yd(t, e, i[0])) ? n + "" : null; if (r) { for (var o = [], a = 0; a < i.length; a++)o.push(Yd(t, e, i[a])); return o.join(" ") } } u(u1, s1 = zr), u1.prototype._createSymbol = function (t, e, n, i, r) { this.removeAll(); r = ny(t, -1, -1, 2, 2, null, r); r.attr({ z2: 100, culling: !0, scaleX: i[0] / 2, scaleY: i[1] / 2 }), r.drift = h1, this._symbolType = t, this.add(r) }, u1.prototype.stopSymbolAnimation = function (t) { this.childAt(0).stopAnimation(null, t) }, u1.prototype.getSymbolType = function () { return this._symbolType }, u1.prototype.getSymbolPath = function () { return this.childAt(0) }, u1.prototype.highlight = function () { vl(this.childAt(0)) }, u1.prototype.downplay = function () { _l(this.childAt(0)) }, u1.prototype.setZ = function (t, e) { var n = this.childAt(0); n.zlevel = t, n.z = e }, u1.prototype.setDraggable = function (t, e) { var n = this.childAt(0); n.draggable = t, n.cursor = !e && t ? "move" : n.cursor }, u1.prototype.updateData = function (t, e, n, i) { this.silent = !1; var r, o, a, s = t.getItemVisual(e, "symbol") || "circle", l = t.hostModel, u = u1.getSymbolSize(t, e), h = s !== this._symbolType, c = i && i.disableAnimation; h ? (r = t.getItemVisual(e, "symbolKeepAspect"), this._createSymbol(s, t, e, u, r)) : ((a = this.childAt(0)).silent = !1, o = { scaleX: u[0] / 2, scaleY: u[1] / 2 }, c ? a.attr(o) : Sh(a, o, l, e), wh(s = a).oldStyle = s.style), this._updateCommon(t, e, u, n, i), h && (a = this.childAt(0), c || (o = { scaleX: this._sizeX, scaleY: this._sizeY, style: { opacity: a.style.opacity } }, a.scaleX = a.scaleY = 0, a.style.opacity = 0, Mh(a, o, l, e))), c && this.childAt(0).stopAnimation("leave") }, u1.prototype._updateCommon = function (e, t, n, i, r) { var o, a, s, l, u, h, c, p, d = this.childAt(0), f = e.hostModel, g = (i && (o = i.emphasisItemStyle, s = i.blurItemStyle, a = i.selectItemStyle, l = i.focus, u = i.blurScope, c = i.labelStatesModels, p = i.hoverScale, y = i.cursorStyle, h = i.emphasisDisabled), i && !e.hasItemOption || (o = (g = (i = i && i.itemModel ? i.itemModel : e.getItemModel(t)).getModel("emphasis")).getModel("itemStyle").getItemStyle(), a = i.getModel(["select", "itemStyle"]).getItemStyle(), s = i.getModel(["blur", "itemStyle"]).getItemStyle(), l = g.get("focus"), u = g.get("blurScope"), h = g.get("disabled"), c = Xh(i), p = g.getShallow("scale"), y = i.getShallow("cursor")), e.getItemVisual(t, "symbolRotate")), i = (d.attr("rotation", (g || 0) * Math.PI / 180 || 0), iy(e.getItemVisual(t, "symbolOffset"), n)), g = (i && (d.x = i[0], d.y = i[1]), y && d.attr("cursor", y), e.getItemVisual(t, "style")), i = g.fill, y = (d instanceof fs ? (y = d.style, d.useStyle(P({ image: y.image, x: y.x, y: y.y, width: y.width, height: y.height }, g))) : (d.__isEmptyBrush ? d.useStyle(P({}, g)) : d.useStyle(g), d.style.decal = null, d.setColor(i, r && r.symbolInnerColor), d.style.strokeNoScale = !0), e.getItemVisual(t, "liftZ")), m = this._z2, v = (null != y ? null == m && (this._z2 = d.z2, d.z2 += y) : null != m && (d.z2 = m, this._z2 = null), r && r.useNameLabel), y = (Uh(d, c, { labelFetcher: f, labelDataIndex: t, defaultText: function (t) { return v ? e.getName(t) : a1(e, t) }, inheritColor: i, defaultOpacity: g.opacity }), this._sizeX = n[0] / 2, this._sizeY = n[1] / 2, d.ensureState("emphasis")), m = (y.style = o, d.ensureState("select").style = a, d.ensureState("blur").style = s, null == p || !0 === p ? Math.max(1.1, 3 / this._sizeY) : isFinite(p) && 0 < p ? +p : 1); y.scaleX = this._sizeX * m, y.scaleY = this._sizeY * m, this.setSymbolScale(1), Al(this, l, u, h) }, u1.prototype.setSymbolScale = function (t) { this.scaleX = this.scaleY = t }, u1.prototype.fadeOut = function (t, e, n) { var i = this.childAt(0), r = Fs(this).dataIndex, o = n && n.animation; this.silent = i.silent = !0, n && n.fadeLabel ? (n = i.getTextContent()) && Ch(n, { style: { opacity: 0 } }, e, { dataIndex: r, removeOpt: o, cb: function () { i.removeTextContent() } }) : i.removeTextContent(), Ch(i, { style: { opacity: 0 }, scaleX: 0, scaleY: 0 }, e, { dataIndex: r, cb: t, removeOpt: o }) }, u1.getSymbolSize = function (t, e) { return [(t = V(t = t.getItemVisual(e, "symbolSize")) ? t : [+t, +t])[0] || 0, t[1] || 0] }; var s1, l1 = u1; function u1(t, e, n, i) { var r = s1.call(this) || this; return r.updateData(t, e, n, i), r } function h1(t, e) { this.parent.drift(t, e) } function c1(t, e, n, i) { return e && !isNaN(e[0]) && !isNaN(e[1]) && (!i.isIgnore || !i.isIgnore(n)) && (!i.clipShape || i.clipShape.contain(e[0], e[1])) && "none" !== t.getItemVisual(n, "symbol") } function p1(t) { return (t = null == t || R(t) ? t : { isIgnore: t }) || {} } function d1(t) { var t = t.hostModel, e = t.getModel("emphasis"); return { emphasisItemStyle: e.getModel("itemStyle").getItemStyle(), blurItemStyle: t.getModel(["blur", "itemStyle"]).getItemStyle(), selectItemStyle: t.getModel(["select", "itemStyle"]).getItemStyle(), focus: e.get("focus"), blurScope: e.get("blurScope"), emphasisDisabled: e.get("disabled"), hoverScale: e.get("scale"), labelStatesModels: Xh(t), cursorStyle: t.get("cursor") } } g1.prototype.updateData = function (o, a) { this._progressiveEls = null, a = p1(a); var s = this.group, l = o.hostModel, u = this._data, h = this._SymbolCtor, c = a.disableAnimation, p = d1(o), d = { disableAnimation: c }, f = a.getSymbolPoint || function (t) { return o.getItemLayout(t) }; u || s.removeAll(), o.diff(u).add(function (t) { var e, n = f(t); c1(o, n, t, a) && ((e = new h(o, t, p, d)).setPosition(n), o.setItemGraphicEl(t, e), s.add(e)) }).update(function (t, e) { var n, i, e = u.getItemGraphicEl(e), r = f(t); c1(o, r, t, a) ? (n = o.getItemVisual(t, "symbol") || "circle", i = e && e.getSymbolType && e.getSymbolType(), !e || i && i !== n ? (s.remove(e), (e = new h(o, t, p, d)).setPosition(r)) : (e.updateData(o, t, p, d), i = { x: r[0], y: r[1] }, c ? e.attr(i) : Sh(e, i, l)), s.add(e), o.setItemGraphicEl(t, e)) : s.remove(e) }).remove(function (t) { var e = u.getItemGraphicEl(t); e && e.fadeOut(function () { s.remove(e) }, l) }).execute(), this._getSymbolPoint = f, this._data = o }, g1.prototype.updateLayout = function () { var n = this, t = this._data; t && t.eachItemGraphicEl(function (t, e) { e = n._getSymbolPoint(e); t.setPosition(e), t.markRedraw() }) }, g1.prototype.incrementalPrepareUpdate = function (t) { this._seriesScope = d1(t), this._data = null, this.group.removeAll() }, g1.prototype.incrementalUpdate = function (t, e, n) { function i(t) { t.isGroup || (t.incremental = !0, t.ensureState("emphasis").hoverLayer = !0) } this._progressiveEls = [], n = p1(n); for (var r = t.start; r < t.end; r++) { var o, a = e.getItemLayout(r); c1(e, a, r, n) && ((o = new this._SymbolCtor(e, r, this._seriesScope)).traverse(i), o.setPosition(a), this.group.add(o), e.setItemGraphicEl(r, o), this._progressiveEls.push(o)) } }, g1.prototype.eachRendered = function (t) { Vh(this._progressiveEls || this.group, t) }, g1.prototype.remove = function (t) { var e = this.group, n = this._data; n && t ? n.eachItemGraphicEl(function (t) { t.fadeOut(function () { e.remove(t) }, n.hostModel) }) : e.removeAll() }; var f1 = g1; function g1(t) { this.group = new zr, this._SymbolCtor = t || l1 } function y1(t, e, n) { var i = t.getBaseAxis(), r = t.getOtherAxis(i), n = (n = n, a = 0, o = (o = r).scale.getExtent(), "start" === n ? a = o[0] : "end" === n ? a = o[1] : dt(n) && !isNaN(n) ? a = n : 0 < o[0] ? a = o[0] : o[1] < 0 && (a = o[1]), a), o = i.dim, a = r.dim, i = e.mapDimension(a), r = e.mapDimension(o), s = "x" === a || "radius" === a ? 1 : 0, t = F(t.dimensions, function (t) { return e.mapDimension(t) }), l = !1, u = e.getCalculationInfo("stackResultDimension"); return Dm(e, t[0]) && (l = !0, t[0] = u), Dm(e, t[1]) && (l = !0, t[1] = u), { dataDimsForPoint: t, valueStart: n, valueAxisDim: a, baseAxisDim: o, stacked: !!l, valueDim: i, baseDim: r, baseDataOffset: s, stackedOverDimension: e.getCalculationInfo("stackedOverDimension") } } function m1(t, e, n, i) { var r = NaN, o = (t.stacked && (r = n.get(n.getCalculationInfo("stackedOverDimension"), i)), isNaN(r) && (r = t.valueStart), t.baseDataOffset), a = []; return a[o] = n.get(t.baseDim, i), a[1 - o] = r, e.dataToPoint(a) } var v1 = Math.min, _1 = Math.max; function x1(t, e) { return isNaN(t) || isNaN(e) } function w1(t, e, n, i, r, o, a, s, l) { for (var u, h, c, p, d = n, f = 0; f < i; f++) { var g = e[2 * d], y = e[2 * d + 1]; if (r <= d || d < 0) break; if (x1(g, y)) { if (l) { d += o; continue } break } if (d === n) t[0 < o ? "moveTo" : "lineTo"](g, y), c = g, p = y; else { var m = g - u, v = y - h; if (m * m + v * v < .5) { d += o; continue } if (0 < a) { for (var _ = d + o, x = e[2 * _], w = e[2 * _ + 1]; x === g && w === y && f < i;)f++, d += o, x = e[2 * (_ += o)], w = e[2 * _ + 1], g = e[2 * d], y = e[2 * d + 1]; var b = f + 1; if (l) for (; x1(x, w) && b < i;)b++, x = e[2 * (_ += o)], w = e[2 * _ + 1]; var S, M, T, C, k, D, I, A, L, m = 0, v = 0, P = void 0, O = void 0; i <= b || x1(x, w) ? (I = g, A = y) : (m = x - u, v = w - h, S = g - u, M = x - g, T = y - h, C = w - y, D = k = void 0, O = "x" === s ? (I = g - (L = 0 < m ? 1 : -1) * (k = Math.abs(S)) * a, A = y, P = g + L * (D = Math.abs(M)) * a, y) : "y" === s ? (I = g, A = y - (L = 0 < v ? 1 : -1) * (k = Math.abs(T)) * a, P = g, y + L * (D = Math.abs(C)) * a) : (k = Math.sqrt(S * S + T * T), I = g - m * a * (1 - (S = (D = Math.sqrt(M * M + C * C)) / (D + k))), A = y - v * a * (1 - S), O = y + v * a * S, P = v1(P = g + m * a * S, _1(x, g)), O = v1(O, _1(w, y)), P = _1(P, v1(x, g)), A = y - (v = (O = _1(O, v1(w, y))) - y) * k / D, I = v1(I = g - (m = P - g) * k / D, _1(u, g)), A = v1(A, _1(h, y)), P = g + (m = g - (I = _1(I, v1(u, g)))) * D / k, y + (v = y - (A = _1(A, v1(h, y)))) * D / k)), t.bezierCurveTo(c, p, I, A, g, y), c = P, p = O } else t.lineTo(g, y) } u = g, h = y, d += o } return f } function b1() { this.smooth = 0, this.smoothConstraint = !0 } u(T1, S1 = as), T1.prototype.getDefaultStyle = function () { return { stroke: "#000", fill: null } }, T1.prototype.getDefaultShape = function () { return new b1 }, T1.prototype.buildPath = function (t, e) { var n = e.points, i = 0, r = n.length / 2; if (e.connectNulls) { for (; 0 < r && x1(n[2 * r - 2], n[2 * r - 1]); r--); for (; i < r && x1(n[2 * i], n[2 * i + 1]); i++); } for (; i < r;)i += w1(t, n, i, r, r, 1, e.smooth, e.smoothMonotone, e.connectNulls) + 1 }, T1.prototype.getPointOn = function (t, e) { this.path || (this.createPathProxy(), this.buildPath(this.path, this.shape)); for (var n, i, r = this.path.data, o = Wa.CMD, a = "x" === e, s = [], l = 0; l < r.length;) { var u, h = void 0, c = void 0; switch (r[l++]) { case o.M: n = r[l++], i = r[l++]; break; case o.L: var p, h = r[l++], c = r[l++]; if ((u = a ? (t - n) / (h - n) : (t - i) / (c - i)) <= 1 && 0 <= u) return p = a ? (c - i) * u + i : (h - n) * u + n, a ? [t, p] : [p, t]; n = h, i = c; break; case o.C: h = r[l++], c = r[l++]; var d = r[l++], f = r[l++], g = r[l++], y = r[l++], m = a ? zn(n, h, d, g, t, s) : zn(i, c, f, y, t, s); if (0 < m) for (var v = 0; v < m; v++) { var _ = s[v]; if (_ <= 1 && 0 <= _) return p = a ? Nn(i, c, f, y, _) : Nn(n, h, d, g, _), a ? [t, p] : [p, t] } n = g, i = y } } }; var S1, M1 = T1; function T1(t) { t = S1.call(this, t) || this; return t.type = "ec-polyline", t } u(L1, k1 = b1); var C1, k1, D1 = L1, I1 = (u(A1, C1 = as), A1.prototype.getDefaultShape = function () { return new D1 }, A1.prototype.buildPath = function (t, e) { var n = e.points, i = e.stackedOnPoints, r = 0, o = n.length / 2, a = e.smoothMonotone; if (e.connectNulls) { for (; 0 < o && x1(n[2 * o - 2], n[2 * o - 1]); o--); for (; r < o && x1(n[2 * r], n[2 * r + 1]); r++); } for (; r < o;) { var s = w1(t, n, r, o, o, 1, e.smooth, a, e.connectNulls); w1(t, i, r + s - 1, s, o, -1, e.stackedOnSmooth, a, e.connectNulls), r += s + 1, t.closePath() } }, A1); function A1(t) { t = C1.call(this, t) || this; return t.type = "ec-polygon", t } function L1() { return null !== k1 && k1.apply(this, arguments) || this } function P1(t, e) { if (t.length === e.length) { for (var n = 0; n < t.length; n++)if (t[n] !== e[n]) return; return 1 } } function O1(t) { for (var e = 1 / 0, n = 1 / 0, i = -1 / 0, r = -1 / 0, o = 0; o < t.length;) { var a = t[o++], s = t[o++]; isNaN(a) || (e = Math.min(a, e), i = Math.max(a, i)), isNaN(s) || (n = Math.min(s, n), r = Math.max(s, r)) } return [[e, n], [i, r]] } function R1(t, e) { var t = O1(t), n = t[0], t = t[1], e = O1(e), i = e[0], e = e[1]; return Math.max(Math.abs(n[0] - i[0]), Math.abs(n[1] - i[1]), Math.abs(t[0] - e[0]), Math.abs(t[1] - e[1])) } function N1(t) { return dt(t) ? t : t ? .5 : 0 } function E1(t, e, n, i) { var e = e.getBaseAxis(), r = "x" === e.dim || "radius" === e.dim ? 0 : 1, o = [], a = 0, s = [], l = [], u = [], h = []; if (i) { for (a = 0; a < t.length; a += 2)isNaN(t[a]) || isNaN(t[a + 1]) || h.push(t[a], t[a + 1]); t = h } for (a = 0; a < t.length - 2; a += 2)switch (u[0] = t[a + 2], u[1] = t[a + 3], l[0] = t[a], l[1] = t[a + 1], o.push(l[0], l[1]), n) { case "end": s[r] = u[r], s[1 - r] = l[1 - r], o.push(s[0], s[1]); break; case "middle": var c = []; s[r] = c[r] = (l[r] + u[r]) / 2, s[1 - r] = l[1 - r], c[1 - r] = u[1 - r], o.push(s[0], s[1]), o.push(c[0], c[1]); break; default: s[r] = l[r], s[1 - r] = u[1 - r], o.push(s[0], s[1]) }return o.push(t[a++], t[a++]), o } function z1(t, e, n) { var i = t.getVisual("visualMeta"); if (i && i.length && t.count() && "cartesian2d" === e.type) { for (var r, o, a = i.length - 1; 0 <= a; a--) { var s = t.getDimensionInfo(i[a].dimension); if ("x" === (r = s && s.coordDim) || "y" === r) { o = i[a]; break } } if (o) { var l = e.getAxis(r), e = F(o.stops, function (t) { return { coord: l.toGlobalCoord(l.dataToCoord(t.value)), color: t.color } }), u = e.length, h = o.outerColors.slice(), n = (u && e[0].coord > e[u - 1].coord && (e.reverse(), h.reverse()), function (t, e) { var n, i, r = [], o = t.length; function a(t, e, n) { var i = t.coord; return { coord: n, color: mi((n - i) / (e.coord - i), [t.color, e.color]) } } for (var s = 0; s < o; s++) { var l = t[s], u = l.coord; if (u < 0) n = l; else { if (e < u) { i ? r.push(a(i, l, e)) : n && r.push(a(n, l, 0), a(n, l, e)); break } n && (r.push(a(n, l, 0)), n = null), r.push(l), i = l } } return r }(e, "x" === r ? n.getWidth() : n.getHeight())), c = n.length; if (!c && u) return e[0].coord < 0 ? h[1] || e[u - 1].color : h[0] || e[0].color; var p = n[0].coord - 10, u = n[c - 1].coord + 10, d = u - p; if (d < .001) return "transparent"; O(n, function (t) { t.offset = (t.coord - p) / d }), n.push({ offset: c ? n[c - 1].offset : .5, color: h[1] || "transparent" }), n.unshift({ offset: c ? n[0].offset : .5, color: h[0] || "transparent" }); e = new lh(0, 0, 0, 0, n, !0); return e[r] = p, e[r + "2"] = u, e } } } function B1(t, e, n) { var t = t.get("showAllSymbol"), i = "auto" === t; if (!t || i) { var r, o, a = n.getAxesByScale("ordinal")[0]; if (a && (!i || !function (t, e) { var n = t.getExtent(), i = Math.abs(n[1] - n[0]) / t.scale.count(); isNaN(i) && (i = 0); for (var r = e.count(), o = Math.max(1, Math.round(r / 5)), a = 0; a < r; a += o)if (1.5 * l1.getSymbolSize(e, a)[t.isHorizontal() ? 1 : 0] > i) return; return 1 }(a, e))) return r = e.mapDimension(a.dim), o = {}, O(a.getViewLabels(), function (t) { t = a.scale.getRawOrdinalNumber(t.tickValue); o[t] = 1 }), function (t) { return !o.hasOwnProperty(e.get(r, t)) } } } function F1(t) { for (var e, n, i = t.length / 2; 0 < i && (e = t[2 * i - 2], n = t[2 * i - 1], isNaN(e) || isNaN(n)); i--); return i - 1 } function V1(t, e) { return [t[2 * e], t[2 * e + 1]] } function H1(t) { if (t.get(["endLabel", "show"])) return 1; for (var e = 0; e < qs.length; e++)if (t.get([qs[e], "endLabel", "show"])) return 1 } function W1(n, i, e, t) { var r, o, a, s, l, u, h, c, p, d, f, g, y, m, v, _, x; return d = "cartesian2d", i.type === d ? (r = t.getModel("endLabel"), o = r.get("valueAnimation"), a = t.getData(), s = { lastFrameIndex: 0 }, d = H1(t) ? function (t, e) { n._endLabelOnDuring(t, e, a, s, o, r, i) } : null, x = i.getBaseAxis().isHorizontal(), u = e, m = t, v = function () { var t = n._endLabel; t && e && null != s.originalX && t.attr({ x: s.originalX, y: s.originalY }) }, h = d, y = (g = (l = i).getArea()).x, f = g.y, c = g.width, g = g.height, _ = m.get(["lineStyle", "width"]) || 2, y -= _ / 2, f -= _ / 2, c += _, g += _, y = Math.floor(y), c = Math.round(c), p = new bs({ shape: { x: y, y: f, width: c, height: g } }), u && (u = (_ = l.getBaseAxis()).isHorizontal(), l = _.inverse, u ? (l && (p.shape.x += c), p.shape.width = 0) : (l || (p.shape.y += g), p.shape.height = 0), _ = S(h) ? function (t) { h(t, p) } : null, Mh(p, { shape: { width: c, height: g, x: y, y: f } }, m, null, v, _)), u = p, t.get("clip", !0) || (l = u.shape, c = Math.max(l.width, l.height), x ? (l.y -= c, l.height += 2 * c) : (l.x -= c, l.width += 2 * c)), d && d(1, u), u) : (g = e, y = t, m = (f = i).getArea(), v = Zr(m.r0, 1), _ = Zr(m.r, 1), x = new Cu({ shape: { cx: Zr(f.cx, 1), cy: Zr(f.cy, 1), r0: v, r: _, startAngle: m.startAngle, endAngle: m.endAngle, clockwise: m.clockwise } }), g && ("angle" === f.getBaseAxis().dim ? x.shape.endAngle = m.startAngle : x.shape.r = v, Mh(x, { shape: { endAngle: m.endAngle, r: _ } }, y)), x) } u(X1, G1 = ag), X1.prototype.init = function () { var t = new zr, e = new f1; this.group.add(e.group), this._symbolDraw = e, this._lineGroup = t }, X1.prototype.render = function (t, e, n) { var i = this, r = t.coordinateSystem, o = this.group, a = t.getData(), s = t.getModel("lineStyle"), l = t.getModel("areaStyle"), u = a.getLayout("points") || [], h = "polar" === r.type, c = this._coordSys, p = this._symbolDraw, d = this._polyline, f = this._polygon, g = this._lineGroup, e = !e.ssr && t.isAnimationEnabled(), y = !l.isEmpty(), m = l.get("origin"), v = y1(r, a, m), v = y && function (t, e, n) { if (!n.valueDim) return []; for (var i = e.count(), r = tv(2 * i), o = 0; o < i; o++) { var a = m1(n, t, e, o); r[2 * o] = a[0], r[2 * o + 1] = a[1] } return r }(r, a, v), _ = t.get("showSymbol"), x = t.get("connectNulls"), w = _ && !h && B1(t, a, r), b = this._data; b && b.eachItemGraphicEl(function (t, e) { t.__temp && (o.remove(t), b.setItemGraphicEl(e, null)) }), _ || p.remove(), o.add(g); function S(t) { i._changePolyState(t) } var M, T = !h && t.get("step"), C = (r && r.getArea && t.get("clip", !0) && (null != (M = r.getArea()).width ? (M.x -= .1, M.y -= .1, M.width += .2, M.height += .2) : M.r0 && (M.r0 -= .5, M.r += .5)), this._clipShapeForSymbol = M, z1(a, r, n) || a.getVisual("style")[a.getVisual("drawType")]), c = (d && c.type === r.type && T === this._step ? (y && !f ? f = this._newPolygon(u, v) : f && !y && (g.remove(f), f = this._polygon = null), h || this._initOrUpdateEndLabel(t, r, np(C)), (c = g.getClipPath()) ? Mh(c, { shape: W1(this, r, !1, t).shape }, t) : g.setClipPath(W1(this, r, !0, t)), _ && p.updateData(a, { isIgnore: w, clipShape: M, disableAnimation: !0, getSymbolPoint: function (t) { return [u[2 * t], u[2 * t + 1]] } }), P1(this._stackedOnPoints, v) && P1(this._points, u) || (e ? this._doUpdateAnimation(a, v, r, n, T, m, x) : (T && (u = E1(u, r, T, x), v = v && E1(v, r, T, x)), d.setShape({ points: u }), f && f.setShape({ points: u, stackedOnPoints: v })))) : (_ && p.updateData(a, { isIgnore: w, clipShape: M, disableAnimation: !0, getSymbolPoint: function (t) { return [u[2 * t], u[2 * t + 1]] } }), e && this._initSymbolLabelAnimation(a, r, M), T && (u = E1(u, r, T, x), v = v && E1(v, r, T, x)), d = this._newPolyline(u), y ? f = this._newPolygon(u, v) : f && (g.remove(f), f = this._polygon = null), h || this._initOrUpdateEndLabel(t, r, np(C)), g.setClipPath(W1(this, r, !0, t))), t.getModel("emphasis")), n = c.get("focus"), _ = c.get("blurScope"), p = c.get("disabled"), w = (d.useStyle(B(s.getLineStyle(), { fill: "none", stroke: C, lineJoin: "bevel" })), Ol(d, t, "lineStyle"), 0 < d.style.lineWidth && "bolder" === t.get(["emphasis", "lineStyle", "width"]) && (d.getState("emphasis").style.lineWidth = +d.style.lineWidth + 1), Fs(d).seriesIndex = t.seriesIndex, Al(d, n, _, p), N1(t.get("smooth"))), e = t.get("smoothMonotone"); d.setShape({ smooth: w, smoothMonotone: e, connectNulls: x }), f && (M = a.getCalculationInfo("stackedOnSeries"), y = 0, f.useStyle(B(l.getAreaStyle(), { fill: C, opacity: .7, lineJoin: "bevel", decal: a.getVisual("style").decal })), M && (y = N1(M.get("smooth"))), f.setShape({ smooth: w, stackedOnSmooth: y, smoothMonotone: e, connectNulls: x }), Ol(f, t, "areaStyle"), Fs(f).seriesIndex = t.seriesIndex, Al(f, n, _, p)); a.eachItemGraphicEl(function (t) { t && (t.onHoverStateChange = S) }), this._polyline.onHoverStateChange = S, this._data = a, this._coordSys = r, this._stackedOnPoints = v, this._points = u, this._step = T, this._valueOrigin = m, t.get("triggerLineEvent") && (this.packEventData(t, d), f) && this.packEventData(t, f) }, X1.prototype.packEventData = function (t, e) { Fs(e).eventData = { componentType: "series", componentSubType: "line", componentIndex: t.componentIndex, seriesIndex: t.seriesIndex, seriesName: t.name, seriesType: "line" } }, X1.prototype.highlight = function (t, e, n, i) { var r = t.getData(), o = So(r, i); if (this._changePolyState("emphasis"), !(o instanceof Array) && null != o && 0 <= o) { var a = r.getLayout("points"), s = r.getItemGraphicEl(o); if (!s) { var l = a[2 * o], a = a[2 * o + 1]; if (isNaN(l) || isNaN(a)) return; if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(l, a)) return; var u = t.get("zlevel") || 0, h = t.get("z") || 0, l = ((s = new l1(r, o)).x = l, s.y = a, s.setZ(u, h), s.getSymbolPath().getTextContent()); l && (l.zlevel = u, l.z = h, l.z2 = this._polyline.z2 + 1), s.__temp = !0, r.setItemGraphicEl(o, s), s.stopSymbolAnimation(!0), this.group.add(s) } s.highlight() } else ag.prototype.highlight.call(this, t, e, n, i) }, X1.prototype.downplay = function (t, e, n, i) { var r, o = t.getData(), a = So(o, i); this._changePolyState("normal"), null != a && 0 <= a ? (r = o.getItemGraphicEl(a)) && (r.__temp ? (o.setItemGraphicEl(a, null), this.group.remove(r)) : r.downplay()) : ag.prototype.downplay.call(this, t, e, n, i) }, X1.prototype._changePolyState = function (t) { var e = this._polygon; pl(this._polyline, t), e && pl(e, t) }, X1.prototype._newPolyline = function (t) { var e = this._polyline; return e && this._lineGroup.remove(e), e = new M1({ shape: { points: t }, segmentIgnoreThreshold: 2, z2: 10 }), this._lineGroup.add(e), this._polyline = e }, X1.prototype._newPolygon = function (t, e) { var n = this._polygon; return n && this._lineGroup.remove(n), n = new I1({ shape: { points: t, stackedOnPoints: e }, segmentIgnoreThreshold: 2 }), this._lineGroup.add(n), this._polygon = n }, X1.prototype._initSymbolLabelAnimation = function (t, l, u) { var h, c, e = l.getBaseAxis(), p = e.inverse, e = ("cartesian2d" === l.type ? (h = e.isHorizontal(), c = !1) : "polar" === l.type && (h = "angle" === e.dim, c = !0), t.hostModel), d = e.get("animationDuration"), f = (S(d) && (d = d(null)), e.get("animationDelay") || 0), g = S(f) ? f(null) : f; t.eachItemGraphicEl(function (t, e) { var n, i, r, o, a, s = t; s && (o = [t.x, t.y], a = i = n = void 0, u && (a = c ? (r = u, o = l.pointToCoord(o), h ? (n = r.startAngle, i = r.endAngle, -o[1] / 180 * Math.PI) : (n = r.r0, i = r.r, o[0])) : h ? (n = u.x, i = u.x + u.width, t.x) : (n = u.y + u.height, i = u.y, t.y)), r = i === n ? 0 : (a - n) / (i - n), p && (r = 1 - r), o = S(f) ? f(e) : d * r + g, a = (t = s.getSymbolPath()).getTextContent(), s.attr({ scaleX: 0, scaleY: 0 }), s.animateTo({ scaleX: 1, scaleY: 1 }, { duration: 200, setToFinal: !0, delay: o }), a && a.animateFrom({ style: { opacity: 0 } }, { duration: 300, delay: o }), t.disableLabelAnimation = !0) }) }, X1.prototype._initOrUpdateEndLabel = function (t, e, n) { var u, i, r, o = t.getModel("endLabel"); H1(t) ? (u = t.getData(), i = this._polyline, (r = u.getLayout("points")) ? (this._endLabel || ((this._endLabel = new ks({ z2: 200 })).ignoreClip = !0, i.setTextContent(this._endLabel), i.disableLabelAnimation = !0), 0 <= (r = F1(r)) && (Uh(i, Xh(t, "endLabel"), { inheritColor: n, labelFetcher: t, labelDataIndex: r, defaultText: function (t, e, n) { if (null == n) return a1(u, t); var i = u, r = n, o = i.mapDimensionsAll("defaultedLabel"); if (!V(r)) return r + ""; for (var a = [], s = 0; s < o.length; s++) { var l = i.getDimensionIndex(o[s]); 0 <= l && a.push(r[l]) } return a.join(" ") }, enableTextSetter: !0 }, (n = o, r = (t = (t = e).getBaseAxis()).isHorizontal(), t = t.inverse, o = r ? t ? "right" : "left" : "center", r = r ? "middle" : t ? "top" : "bottom", { normal: { align: n.get("align") || o, verticalAlign: n.get("verticalAlign") || r } })), i.textConfig.position = null)) : (i.removeTextContent(), this._endLabel = null)) : this._endLabel && (this._polyline.removeTextContent(), this._endLabel = null) }, X1.prototype._endLabelOnDuring = function (t, e, n, i, r, o, a) { var s, l, u, h, c, p, d, f, g, y, m = this._endLabel, v = this._polyline; m && (t < 1 && null == i.originalX && (i.originalX = m.x, i.originalY = m.y), s = n.getLayout("points"), g = (l = n.hostModel).get("connectNulls"), u = o.get("precision"), o = o.get("distance") || 0, c = (a = a.getBaseAxis()).isHorizontal(), a = a.inverse, e = e.shape, h = (c ? o : 0) * (a ? -1 : 1), o = (c ? 0 : -o) * (a ? -1 : 1), d = void 0, 1 <= (f = (p = (c = function (t, e, n) { for (var i, r, o = t.length / 2, a = "x" === n ? 0 : 1, s = 0, l = -1, u = 0; u < o; u++)if (r = t[2 * u + a], !isNaN(r) && !isNaN(t[2 * u + 1 - a])) { if (0 !== u) { if (i <= e && e <= r || e <= i && r <= e) { l = u; break } s = u } i = r } return { range: [s, l], t: (e - i) / (r - i) } }(s, a = a ? c ? e.x : e.y + e.height : c ? e.x + e.width : e.y, e = c ? "x" : "y")).range)[1] - p[0]) ? (1 < f && !g ? (y = V1(s, p[0]), m.attr({ x: y[0] + h, y: y[1] + o }), r && (d = l.getRawValue(p[0]))) : ((y = v.getPointOn(a, e)) && m.attr({ x: y[0] + h, y: y[1] + o }), f = l.getRawValue(p[0]), g = l.getRawValue(p[1]), r && (d = Lo(n, u, f, g, c.t))), i.lastFrameIndex = p[0]) : (y = V1(s, v = 1 === t || 0 < i.lastFrameIndex ? p[0] : 0), r && (d = l.getRawValue(v)), m.attr({ x: y[0] + h, y: y[1] + o })), r) && "function" == typeof (a = Qh(m)).setLabelText && a.setLabelText(d) }, X1.prototype._doUpdateAnimation = function (t, e, n, i, r, o, a) { var s = this._polyline, l = this._polygon, u = t.hostModel, e = function (t, e, n, i, r, o) { a = [], e.diff(t).add(function (t) { a.push({ cmd: "+", idx: t }) }).update(function (t, e) { a.push({ cmd: "=", idx: e, idx1: t }) }).remove(function (t) { a.push({ cmd: "-", idx: t }) }).execute(); for (var a, s = a, l = [], u = [], h = [], c = [], p = [], d = [], f = [], g = y1(r, e, o), y = t.getLayout("points") || [], m = e.getLayout("points") || [], v = 0; v < s.length; v++) { var _ = s[v], x = !0, w = void 0; switch (_.cmd) { case "=": var b = 2 * _.idx, w = 2 * _.idx1, S = y[b], M = y[1 + b], T = m[w], C = m[w + 1]; (isNaN(S) || isNaN(M)) && (S = T, M = C), l.push(S, M), u.push(T, C), h.push(n[b], n[1 + b]), c.push(i[w], i[w + 1]), f.push(e.getRawIndex(_.idx1)); break; case "+": S = _.idx, M = g.dataDimsForPoint, T = r.dataToPoint([e.get(M[0], S), e.get(M[1], S)]), C = (w = 2 * S, l.push(T[0], T[1]), u.push(m[w], m[w + 1]), m1(g, r, e, S)); h.push(C[0], C[1]), c.push(i[w], i[w + 1]), f.push(e.getRawIndex(S)); break; case "-": x = !1 }x && (p.push(_), d.push(d.length)) } d.sort(function (t, e) { return f[t] - f[e] }); for (var k = tv(o = l.length), D = tv(o), I = tv(o), A = tv(o), L = [], v = 0; v < d.length; v++) { var P = d[v], O = 2 * v, R = 2 * P; k[O] = l[R], k[1 + O] = l[1 + R], D[O] = u[R], D[1 + O] = u[1 + R], I[O] = h[R], I[1 + O] = h[1 + R], A[O] = c[R], A[1 + O] = c[1 + R], L[v] = p[P] } return { current: k, next: D, stackedOnCurrent: I, stackedOnNext: A, status: L } }(this._data, t, this._stackedOnPoints, e, this._coordSys, this._valueOrigin), h = e.current, c = e.stackedOnCurrent, p = e.next, d = e.stackedOnNext; if (r && (h = E1(e.current, n, r, a), c = E1(e.stackedOnCurrent, n, r, a), p = E1(e.next, n, r, a), d = E1(e.stackedOnNext, n, r, a)), 3e3 < R1(h, p) || l && 3e3 < R1(c, d)) s.stopAnimation(), s.setShape({ points: p }), l && (l.stopAnimation(), l.setShape({ points: p, stackedOnPoints: d })); else { s.shape.__points = e.current, s.shape.points = h; n = { shape: { points: p } }; e.current !== h && (n.shape.__points = e.next), s.stopAnimation(), Sh(s, n, u), l && (l.setShape({ points: h, stackedOnPoints: c }), l.stopAnimation(), Sh(l, { shape: { stackedOnPoints: d } }, u), s.shape.points !== l.shape.points) && (l.shape.points = s.shape.points); for (var f, g = [], y = e.status, m = 0; m < y.length; m++)"=" === y[m].cmd && (f = t.getItemGraphicEl(y[m].idx1)) && g.push({ el: f, ptIdx: m }); s.animators && s.animators.length && s.animators[0].during(function () { l && l.dirtyShape(); for (var t = s.shape.__points, e = 0; e < g.length; e++) { var n = g[e].el, i = 2 * g[e].ptIdx; n.x = t[i], n.y = t[1 + i], n.markRedraw() } }) } }, X1.prototype.remove = function (t) { var n = this.group, i = this._data; this._lineGroup.removeAll(), this._symbolDraw.remove(!0), i && i.eachItemGraphicEl(function (t, e) { t.__temp && (n.remove(t), i.setItemGraphicEl(e, null)) }), this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._endLabel = this._data = null }, X1.type = "line"; var G1, U1 = X1; function X1() { return null !== G1 && G1.apply(this, arguments) || this } var Y1 = { average: function (t) { for (var e = 0, n = 0, i = 0; i < t.length; i++)isNaN(t[i]) || (e += t[i], n++); return 0 === n ? NaN : e / n }, sum: function (t) { for (var e = 0, n = 0; n < t.length; n++)e += t[n] || 0; return e }, max: function (t) { for (var e = -1 / 0, n = 0; n < t.length; n++)t[n] > e && (e = t[n]); return isFinite(e) ? e : NaN }, min: function (t) { for (var e = 1 / 0, n = 0; n < t.length; n++)t[n] < e && (e = t[n]); return isFinite(e) ? e : NaN }, nearest: function (t) { return t[0] } }, q1 = function (t) { return Math.round(t.length / 2) }; zv(function (t) { var i; t.registerChartView(U1), t.registerSeriesModel(r1), t.registerLayout((i = !0, { seriesType: "line", plan: ig(), reset: function (t) { var h, e, c, p, d, n = t.getData(), f = t.coordinateSystem, t = t.pipelineContext, g = i || t.large; if (f) return t = F(f.dimensions, function (t) { return n.mapDimension(t) }).slice(0, 2), h = t.length, e = n.getCalculationInfo("stackResultDimension"), Dm(n, t[0]) && (t[0] = e), Dm(n, t[1]) && (t[1] = e), c = n.getStore(), p = n.getDimensionIndex(t[0]), d = n.getDimensionIndex(t[1]), h && { progress: function (t, e) { for (var n = t.end - t.start, i = g && tv(n * h), r = [], o = [], a = t.start, s = 0; a < t.end; a++) { var l, u = void 0; u = 1 === h ? (l = c.get(p, a), f.dataToPoint(l, null, o)) : (r[0] = c.get(p, a), r[1] = c.get(d, a), f.dataToPoint(r, null, o)), g ? (i[s++] = u[0], i[s++] = u[1]) : e.setItemLayout(a, u.slice()) } g && e.setLayout("points", i) } } } })), t.registerVisual({ seriesType: "line", reset: function (t) { var e = t.getData(), t = t.getModel("lineStyle").getLineStyle(); t && !t.stroke && (t.stroke = e.getVisual("style").fill), e.setVisual("legendLineStyle", t) } }), t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC, { seriesType: "line", reset: function (t, e, n) { var i, r = t.getData(), o = t.get("sampling"), a = t.coordinateSystem, s = r.count(); 10 < s && "cartesian2d" === a.type && o && (i = a.getBaseAxis(), a = a.getOtherAxis(i), i = i.getExtent(), n = n.getDevicePixelRatio(), i = Math.abs(i[1] - i[0]) * (n || 1), n = Math.round(s / i), isFinite(n)) && 1 < n && ("lttb" === o && t.setData(r.lttbDownSample(r.mapDimension(a.dim), 1 / n)), s = void 0, H(o) ? s = Y1[o] : S(o) && (s = o), s) && t.setData(r.downSample(r.mapDimension(a.dim), 1 / n, s, q1)) } }) }); u(K1, Z1 = g), K1.type = "grid", K1.dependencies = ["xAxis", "yAxis"], K1.layoutMode = "box", K1.defaultOption = { show: !1, z: 0, left: "10%", top: 60, right: "10%", bottom: 70, containLabel: !1, backgroundColor: "rgba(0,0,0,0)", borderWidth: 1, borderColor: "#ccc" }; var Z1, j1 = K1; function K1() { return null !== Z1 && Z1.apply(this, arguments) || this } u(J1, $1 = g), J1.prototype.getCoordSysModel = function () { return this.getReferringComponents("grid", Do).models[0] }, J1.type = "cartesian2dAxis"; var $1, Q1 = J1; function J1() { return null !== $1 && $1.apply(this, arguments) || this } at(Q1, Ov); var ac = { show: !0, z: 0, inverse: !1, name: "", nameLocation: "end", nameRotate: null, nameTruncate: { maxWidth: null, ellipsis: "...", placeholder: "." }, nameTextStyle: {}, nameGap: 15, silent: !1, triggerEvent: !1, tooltip: { show: !1 }, axisPointer: {}, axisLine: { show: !0, onZero: !0, onZeroAxisIndex: null, lineStyle: { color: "#6E7079", width: 1, type: "solid" }, symbol: ["none", "none"], symbolSize: [10, 15] }, axisTick: { show: !0, inside: !1, length: 5, lineStyle: { width: 1 } }, axisLabel: { show: !0, inside: !1, rotate: 0, showMinLabel: null, showMaxLabel: null, margin: 8, fontSize: 12 }, splitLine: { show: !0, lineStyle: { color: ["#E0E6F1"], width: 1, type: "solid" } }, splitArea: { show: !1, areaStyle: { color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"] } } }, Bo = d({ boundaryGap: !0, deduplication: null, splitLine: { show: !1 }, axisTick: { alignWithLabel: !1, interval: "auto" }, axisLabel: { interval: "auto" } }, ac), Yg = d({ boundaryGap: [0, 0], axisLine: { show: "auto" }, axisTick: { show: "auto" }, splitNumber: 5, minorTick: { show: !1, splitNumber: 5, length: 3, lineStyle: {} }, minorSplitLine: { show: !1, lineStyle: { color: "#F4F7FD", width: 1 } } }, ac), tx = { category: Bo, value: Yg, time: d({ splitNumber: 6, axisLabel: { showMinLabel: !1, showMaxLabel: !1, rich: { primary: { fontWeight: "bold" } } }, splitLine: { show: !1 } }, Yg), log: B({ logBase: 10 }, Yg) }, ex = { value: 1, category: 1, time: 1, log: 1 }; function nx(o, a, s, l) { O(ex, function (t, r) { var e, n = d(d({}, tx[r], !0), l, !0), n = (u(i, e = s), i.prototype.mergeDefaultAndTheme = function (t, e) { var n = lp(this), i = n ? hp(t) : {}; d(t, e.getTheme().get(r + "Axis")), d(t, this.getDefaultOption()), t.type = ix(t), n && up(t, i, n) }, i.prototype.optionUpdated = function () { "category" === this.option.type && (this.__ordinalMeta = Rm.createByAxisModel(this)) }, i.prototype.getCategories = function (t) { var e = this.option; if ("category" === e.type) return t ? e.data : this.__ordinalMeta.categories }, i.prototype.getOrdinalMeta = function () { return this.__ordinalMeta }, i.type = a + "Axis." + r, i.defaultOption = n, i); function i() { var t = null !== e && e.apply(this, arguments) || this; return t.type = a + "Axis." + r, t } o.registerComponentModel(n) }), o.registerSubTypeDefaulter(a + "Axis", ix) } function ix(t) { return t.type || (t.data ? "category" : "value") } function rx(t) { this.type = "cartesian", this._dimList = [], this._axes = {}, this.name = t || "" } rx.prototype.getAxis = function (t) { return this._axes[t] }, rx.prototype.getAxes = function () { return F(this._dimList, function (t) { return this._axes[t] }, this) }, rx.prototype.getAxesByScale = function (e) { return e = e.toLowerCase(), ut(this.getAxes(), function (t) { return t.scale.type === e }) }, rx.prototype.addAxis = function (t) { var e = t.dim; this._axes[e] = t, this._dimList.push(e) }; var ox = ["x", "y"]; function ax(t) { return "interval" === t.type || "time" === t.type } u(ux, sx = rx), ux.prototype.calcAffineTransform = function () { this._transform = this._invTransform = null; var t, e, n, i, r = this.getAxis("x").scale, o = this.getAxis("y").scale; ax(r) && ax(o) && (r = r.getExtent(), o = o.getExtent(), i = this.dataToPoint([r[0], o[0]]), e = this.dataToPoint([r[1], o[1]]), t = r[1] - r[0], n = o[1] - o[0], t) && n && (t = (e[0] - i[0]) / t, e = (e[1] - i[1]) / n, n = i[0] - r[0] * t, r = i[1] - o[0] * e, i = this._transform = [t, 0, 0, e, n, r], this._invTransform = Be([], i)) }, ux.prototype.getBaseAxis = function () { return this.getAxesByScale("ordinal")[0] || this.getAxesByScale("time")[0] || this.getAxis("x") }, ux.prototype.containPoint = function (t) { var e = this.getAxis("x"), n = this.getAxis("y"); return e.contain(e.toLocalCoord(t[0])) && n.contain(n.toLocalCoord(t[1])) }, ux.prototype.containData = function (t) { return this.getAxis("x").containData(t[0]) && this.getAxis("y").containData(t[1]) }, ux.prototype.containZone = function (t, e) { var t = this.dataToPoint(t), e = this.dataToPoint(e), n = this.getArea(), e = new z(t[0], t[1], e[0] - t[0], e[1] - t[1]); return n.intersect(e) }, ux.prototype.dataToPoint = function (t, e, n) { n = n || []; var i, r = t[0], o = t[1]; return this._transform && null != r && isFinite(r) && null != o && isFinite(o) ? ee(n, t, this._transform) : (t = this.getAxis("x"), i = this.getAxis("y"), n[0] = t.toGlobalCoord(t.dataToCoord(r, e)), n[1] = i.toGlobalCoord(i.dataToCoord(o, e)), n) }, ux.prototype.clampData = function (t, e) { var n = this.getAxis("x").scale, i = this.getAxis("y").scale, r = n.getExtent(), o = i.getExtent(), n = n.parse(t[0]), i = i.parse(t[1]); return (e = e || [])[0] = Math.min(Math.max(Math.min(r[0], r[1]), n), Math.max(r[0], r[1])), e[1] = Math.min(Math.max(Math.min(o[0], o[1]), i), Math.max(o[0], o[1])), e }, ux.prototype.pointToData = function (t, e) { var n, i, r = []; return this._invTransform ? ee(r, t, this._invTransform) : (n = this.getAxis("x"), i = this.getAxis("y"), r[0] = n.coordToData(n.toLocalCoord(t[0]), e), r[1] = i.coordToData(i.toLocalCoord(t[1]), e), r) }, ux.prototype.getOtherAxis = function (t) { return this.getAxis("x" === t.dim ? "y" : "x") }, ux.prototype.getArea = function () { var t = this.getAxis("x").getGlobalExtent(), e = this.getAxis("y").getGlobalExtent(), n = Math.min(t[0], t[1]), i = Math.min(e[0], e[1]), t = Math.max(t[0], t[1]) - n, e = Math.max(e[0], e[1]) - i; return new z(n, i, t, e) }; var sx, lx = ux; function ux() { var t = null !== sx && sx.apply(this, arguments) || this; return t.type = "cartesian2d", t.dimensions = ox, t } u(px, hx = hc), px.prototype.isHorizontal = function () { var t = this.position; return "top" === t || "bottom" === t }, px.prototype.getGlobalExtent = function (t) { var e = this.getExtent(); return e[0] = this.toGlobalCoord(e[0]), e[1] = this.toGlobalCoord(e[1]), t && e[0] > e[1] && e.reverse(), e }, px.prototype.pointToData = function (t, e) { return this.coordToData(this.toLocalCoord(t["x" === this.dim ? 0 : 1]), e) }, px.prototype.setCategorySortInfo = function (t) { if ("category" !== this.type) return !1; this.model.option.categorySortInfo = t, this.scale.setSortInfo(t) }; var hx, cx = px; function px(t, e, n, i, r) { t = hx.call(this, t, e, n) || this; return t.index = 0, t.type = i || "value", t.position = r || "bottom", t } function dx(t) { return "cartesian2d" === t.get("coordinateSystem") } function fx(i) { var r = { xAxisModel: null, yAxisModel: null }; return O(r, function (t, e) { var n = e.replace(/Model$/, ""), n = i.getReferringComponents(n, Do).models[0]; r[e] = n }), r } var gx = Math.log; mx.prototype.getRect = function () { return this._rect }, mx.prototype.update = function (t, e) { var n = this._axesMap; function i(t) { var d, e = D(t), n = e.length; if (n) { for (var i = [], r = n - 1; 0 <= r; r--) { var o = t[+e[r]], a = o.model, s = o.scale; zm(s) && a.get("alignTicks") && null == a.get("interval") ? i.push(o) : (kv(s, a), zm(s) && (d = o)) } i.length && (d || kv((d = i.pop()).scale, d.model), O(i, function (t) { var e = t.scale, t = t.model, n = d.scale, i = Km.prototype, r = i.getTicks.call(n), o = i.getTicks.call(n, !0), a = r.length - 1, n = i.getInterval.call(n), s = (t = Cv(e, t)).extent, l = t.fixMin, t = t.fixMax, u = ("log" === e.type && (u = gx(e.base), s = [gx(s[0]) / u, gx(s[1]) / u]), e.setExtent(s[0], s[1]), e.calcNiceExtent({ splitNumber: a, fixMin: l, fixMax: t }), i.getExtent.call(e)), h = (l && (s[0] = u[0]), t && (s[1] = u[1]), i.getInterval.call(e)), c = s[0], p = s[1]; if (l && t) h = (p - c) / a; else if (l) for (p = s[0] + h * a; p < s[1] && isFinite(p) && isFinite(s[1]);)h = Fm(h), p = s[0] + h * a; else if (t) for (c = s[1] - h * a; c > s[0] && isFinite(c) && isFinite(s[0]);)h = Fm(h), c = s[1] - h * a; else { u = (h = e.getTicks().length - 1 > a ? Fm(h) : h) * a; (c = Zr((p = Math.ceil(s[1] / h) * h) - u)) < 0 && 0 <= s[0] ? (c = 0, p = Zr(u)) : 0 < p && s[1] <= 0 && (p = 0, c = -Zr(u)) } l = (r[0].value - o[0].value) / n, t = (r[a].value - o[a].value) / n, i.setExtent.call(e, c + h * l, p + h * t), i.setInterval.call(e, h), (l || t) && i.setNiceExtent.call(e, c + h, p - h) })) } } this._updateScale(t, this.model), i(n.x), i(n.y); var r = {}; O(n.x, function (t) { _x(n, "y", t, r) }), O(n.y, function (t) { _x(n, "x", t, r) }), this.resize(this.model, e) }, mx.prototype.resize = function (t, e, n) { var i = t.getBoxLayoutParams(), n = !n && t.get("containLabel"), a = sp(i, { width: e.getWidth(), height: e.getHeight() }), r = (this._rect = a, this._axesList); function o() { O(r, function (t) { var e, n, i = t.isHorizontal(), r = i ? [0, a.width] : [0, a.height], o = t.inverse ? 1 : 0; t.setExtent(r[o], r[1 - o]), r = t, e = i ? a.x : a.y, o = r.getExtent(), n = o[0] + o[1], r.toGlobalCoord = "x" === r.dim ? function (t) { return t + e } : function (t) { return n - t + e }, r.toLocalCoord = "x" === r.dim ? function (t) { return t - e } : function (t) { return n - t + e } }) } o(), n && (O(r, function (t) { var e, n, i; t.model.get(["axisLabel", "inside"]) || (e = Av(t)) && (n = t.isHorizontal() ? "height" : "width", i = t.model.get(["axisLabel", "margin"]), a[n] -= e[n] + i, "top" === t.position ? a.y += e.height + i : "left" === t.position && (a.x += e.width + i)) }), o()), O(this._coordsList, function (t) { t.calcAffineTransform() }) }, mx.prototype.getAxis = function (t, e) { t = this._axesMap[t]; if (null != t) return t[e || 0] }, mx.prototype.getAxes = function () { return this._axesList.slice() }, mx.prototype.getCartesian = function (t, e) { if (null != t && null != e) return this._coordsMap["x" + t + "y" + e]; R(t) && (e = t.yAxisIndex, t = t.xAxisIndex); for (var n = 0, i = this._coordsList; n < i.length; n++)if (i[n].getAxis("x").index === t || i[n].getAxis("y").index === e) return i[n] }, mx.prototype.getCartesians = function () { return this._coordsList.slice() }, mx.prototype.convertToPixel = function (t, e, n) { e = this._findConvertTarget(e); return e.cartesian ? e.cartesian.dataToPoint(n) : e.axis ? e.axis.toGlobalCoord(e.axis.dataToCoord(n)) : null }, mx.prototype.convertFromPixel = function (t, e, n) { e = this._findConvertTarget(e); return e.cartesian ? e.cartesian.pointToData(n) : e.axis ? e.axis.coordToData(e.axis.toLocalCoord(n)) : null }, mx.prototype._findConvertTarget = function (t) { var e, n, i = t.seriesModel, r = t.xAxisModel || i && i.getReferringComponents("xAxis", Do).models[0], o = t.yAxisModel || i && i.getReferringComponents("yAxis", Do).models[0], t = t.gridModel, a = this._coordsList; return i ? k(a, e = i.coordinateSystem) < 0 && (e = null) : r && o ? e = this.getCartesian(r.componentIndex, o.componentIndex) : r ? n = this.getAxis("x", r.componentIndex) : o ? n = this.getAxis("y", o.componentIndex) : t && t.coordinateSystem === this && (e = this._coordsList[0]), { cartesian: e, axis: n } }, mx.prototype.containPoint = function (t) { var e = this._coordsList[0]; if (e) return e.containPoint(t) }, mx.prototype._initCartesian = function (o, t, e) { var a = this, s = this, l = { left: !1, right: !1, top: !1, bottom: !1 }, u = { x: {}, y: {} }, h = { x: 0, y: 0 }; function n(r) { return function (t, e) { var n, i; vx(t, o) && (n = t.get("position"), "x" === r ? "top" !== n && "bottom" !== n && (n = l.bottom ? "top" : "bottom") : "left" !== n && "right" !== n && (n = l.left ? "right" : "left"), l[n] = !0, i = "category" === (n = new cx(r, Dv(t), [0, 0], t.get("type"), n)).type, n.onBand = i && t.get("boundaryGap"), n.inverse = t.get("inverse"), (t.axis = n).model = t, n.grid = s, n.index = e, s._axesList.push(n), u[r][e] = n, h[r]++) } } t.eachComponent("xAxis", n("x"), this), t.eachComponent("yAxis", n("y"), this), h.x && h.y ? O((this._axesMap = u).x, function (i, r) { O(u.y, function (t, e) { var e = "x" + r + "y" + e, n = new lx(e); n.master = a, n.model = o, a._coordsMap[e] = n, a._coordsList.push(n), n.addAxis(i), n.addAxis(t) }) }) : (this._axesMap = {}, this._axesList = []) }, mx.prototype._updateScale = function (t, i) { function r(e, n) { var i, t, r; O((i = e, t = n.dim, r = {}, O(i.mapDimensionsAll(t), function (t) { r[Im(i, t)] = !0 }), D(r)), function (t) { n.scale.unionExtentFromData(e, t) }) } O(this._axesList, function (t) { var e; t.scale.setExtent(1 / 0, -1 / 0), "category" === t.type && (e = t.model.get("categorySortInfo"), t.scale.setSortInfo(e)) }), t.eachSeries(function (t) { var e, n; dx(t) && (n = (e = fx(t)).xAxisModel, e = e.yAxisModel, vx(n, i)) && vx(e, i) && (n = this.getCartesian(n.componentIndex, e.componentIndex), e = t.getData(), t = n.getAxis("x"), n = n.getAxis("y"), r(e, t), r(e, n)) }, this) }, mx.prototype.getTooltipAxes = function (n) { var i = [], r = []; return O(this.getCartesians(), function (t) { var e = null != n && "auto" !== n ? t.getAxis(n) : t.getBaseAxis(), t = t.getOtherAxis(e); k(i, e) < 0 && i.push(e), k(r, t) < 0 && r.push(t) }), { baseAxes: i, otherAxes: r } }, mx.create = function (i, r) { var o = []; return i.eachComponent("grid", function (t, e) { var n = new mx(t, i, r); n.name = "grid_" + e, n.resize(t, r, !0), t.coordinateSystem = n, o.push(n) }), i.eachSeries(function (t) { var e, n, i; dx(t) && (e = (n = fx(t)).xAxisModel, n = n.yAxisModel, i = e.getCoordSysModel().coordinateSystem, t.coordinateSystem = i.getCartesian(e.componentIndex, n.componentIndex)) }), o }, mx.dimensions = ox; var yx = mx; function mx(t, e, n) { this.type = "grid", this._coordsMap = {}, this._coordsList = [], this._axesMap = {}, this._axesList = [], this.axisPointerEnabled = !0, this.dimensions = ox, this._initCartesian(t, e, n), this.model = t } function vx(t, e) { return t.getCoordSysModel() === e } function _x(t, e, n, i) { n.getAxesOnZeroOf = function () { return r ? [r] : [] }; var r, o = t[e], t = n.model, e = t.get(["axisLine", "onZero"]), n = t.get(["axisLine", "onZeroAxisIndex"]); if (e) { if (null != n) xx(o[n]) && (r = o[n]); else for (var a in o) if (o.hasOwnProperty(a) && xx(o[a]) && !i[s(o[a])]) { r = o[a]; break } r && (i[s(r)] = !0) } function s(t) { return t.dim + "_" + t.index } } function xx(t) { return t && "category" !== t.type && "time" !== t.type && (e = (t = (t = t).scale.getExtent())[0], t = t[1], !(0 < e && 0 < t || e < 0 && t < 0)); var e } var bx = Math.PI, Sx = (Tx.prototype.hasBuilder = function (t) { return !!Mx[t] }, Tx.prototype.add = function (t) { Mx[t](this.opt, this.axisModel, this.group, this._transformGroup) }, Tx.prototype.getGroup = function () { return this.group }, Tx.innerTextLayout = function (t, e, n) { var i, e = Qr(e - t), t = Jr(e) ? (i = 0 < n ? "top" : "bottom", "center") : Jr(e - bx) ? (i = 0 < n ? "bottom" : "top", "center") : (i = "middle", 0 < e && e < bx ? 0 < n ? "right" : "left" : 0 < n ? "left" : "right"); return { rotation: e, textAlign: t, textVerticalAlign: i } }, Tx.makeAxisEventDataBase = function (t) { var e = { componentType: t.mainType, componentIndex: t.componentIndex }; return e[t.mainType + "Index"] = t.componentIndex, e }, Tx.isLabelSilent = function (t) { var e = t.get("tooltip"); return t.get("silent") || !(t.get("triggerEvent") || e && e.show) }, Tx), Mx = { axisLine: function (i, t, r, e) { var o, a, s, l, u, h, c, n = t.get(["axisLine", "show"]); (n = "auto" === n && i.handleAutoShown ? i.handleAutoShown("axisLine") : n) && (n = t.axis.getExtent(), e = e.transform, o = [n[0], 0], a = [n[1], 0], s = a[0] < o[0], e && (ee(o, o, e), ee(a, a, e)), l = P({ lineCap: "round" }, t.getModel(["axisLine", "lineStyle"]).getLineStyle()), zh((n = new Uu({ shape: { x1: o[0], y1: o[1], x2: a[0], y2: a[1] }, style: l, strokeContainThreshold: i.strokeContainThreshold || 5, silent: !0, z2: 1 })).shape, n.style.lineWidth), n.anid = "line", r.add(n), null != (u = t.get(["axisLine", "symbol"]))) && (e = t.get(["axisLine", "symbolSize"]), H(u) && (u = [u, u]), (H(e) || dt(e)) && (e = [e, e]), n = iy(t.get(["axisLine", "symbolOffset"]) || 0, e), h = e[0], c = e[1], O([{ rotate: i.rotation + Math.PI / 2, offset: n[0], r: 0 }, { rotate: i.rotation - Math.PI / 2, offset: n[1], r: Math.sqrt((o[0] - a[0]) * (o[0] - a[0]) + (o[1] - a[1]) * (o[1] - a[1])) }], function (t, e) { var n; "none" !== u[e] && null != u[e] && (e = ny(u[e], -h / 2, -c / 2, h, c, l.stroke, !0), n = t.r + t.offset, e.attr({ rotation: t.rotate, x: (t = s ? a : o)[0] + n * Math.cos(i.rotation), y: t[1] - n * Math.sin(i.rotation), silent: !0, z2: 11 }), r.add(e)) })) }, axisTickLabel: function (t, e, n, i) { var r, o, a, s = function (t, e, n, i) { var r = n.axis, o = n.getModel("axisTick"), a = o.get("show"); if ((a = "auto" === a && i.handleAutoShown ? i.handleAutoShown("axisTick") : a) && !r.scale.isBlank()) { for (var a = o.getModel("lineStyle"), i = i.tickDirection * o.get("length"), s = Ix(r.getTicksCoords(), e.transform, i, B(a.getLineStyle(), { stroke: n.get(["axisLine", "lineStyle", "color"]) }), "ticks"), l = 0; l < s.length; l++)t.add(s[l]); return s } }(n, i, e, t), l = function (l, u, h, c) { var p = h.axis; { var d, f, t, e, g, y, m, v, _; if (wt(c.axisLabelShow, h.get(["axisLabel", "show"])) && !p.scale.isBlank()) return d = h.getModel("axisLabel"), f = d.get("margin"), t = p.getViewLabels(), e = (wt(c.labelRotate, d.get("rotate")) || 0) * bx / 180, g = Sx.innerTextLayout(c.rotation, e, c.labelDirection), y = h.getCategories && h.getCategories(!0), m = [], v = Sx.isLabelSilent(h), _ = h.get("triggerEvent"), O(t, function (t, e) { var n = "ordinal" === p.scale.type ? p.scale.getRawOrdinalNumber(t.tickValue) : t.tickValue, i = t.formattedLabel, r = t.rawLabel, o = d, a = (o = y && y[n] && R(a = y[n]) && a.textStyle ? new dc(a.textStyle, d, h.ecModel) : o).getTextColor() || h.get(["axisLine", "lineStyle", "color"]), s = p.dataToCoord(n), s = new ks({ x: s, y: c.labelOffset + c.labelDirection * f, rotation: g.rotation, silent: v, z2: 10 + (t.level || 0), style: Yh(o, { text: i, align: o.getShallow("align", !0) || g.textAlign, verticalAlign: o.getShallow("verticalAlign", !0) || o.getShallow("baseline", !0) || g.textVerticalAlign, fill: S(a) ? a("category" === p.type ? r : "value" === p.type ? n + "" : n, e) : a }) }); s.anid = "label_" + n, _ && ((t = Sx.makeAxisEventDataBase(h)).targetType = "axisLabel", t.value = r, t.tickIndex = e, "category" === p.type && (t.dataIndex = n), Fs(s).eventData = t), u.add(s), s.updateTransform(), m.push(s), l.add(s), s.decomposeTransform() }), m } }(n, i, e, t), u = e, h = l, c = (Pv(u.axis) || (d = u.get(["axisLabel", "showMinLabel"]), u = u.get(["axisLabel", "showMaxLabel"]), s = s || [], y = (h = h || [])[0], f = h[1], r = h[h.length - 1], h = h[h.length - 2], o = s[0], g = s[1], a = s[s.length - 1], s = s[s.length - 2], !1 === d ? (Cx(y), Cx(o)) : kx(y, f) && (d ? (Cx(f), Cx(g)) : (Cx(y), Cx(o))), !1 === u ? (Cx(r), Cx(a)) : kx(h, r) && (u ? (Cx(h), Cx(s)) : (Cx(r), Cx(a)))), n), p = i, d = e, f = t.tickDirection, g = d.axis, y = d.getModel("minorTick"); if (y.get("show") && !g.scale.isBlank()) { var m = g.getMinorTicksCoords(); if (m.length) for (var g = y.getModel("lineStyle"), v = f * y.get("length"), _ = B(g.getLineStyle(), B(d.getModel("axisTick").getLineStyle(), { stroke: d.get(["axisLine", "lineStyle", "color"]) })), x = 0; x < m.length; x++)for (var w = Ix(m[x], p.transform, v, _, "minorticks_" + x), b = 0; b < w.length; b++)c.add(w[b]) } e.get(["axisLabel", "hideOverlap"]) && P_(A_(F(l, function (t) { return { label: t, priority: t.z2, defaultAttr: { ignore: t.ignore } } }))) }, axisName: function (t, e, n, i) { var r, o, a, s, l, u, h, c, p, d, f = wt(t.axisName, e.get("name")); f && (h = e.get("nameLocation"), u = t.nameDirection, o = e.getModel("nameTextStyle"), c = e.get("nameGap") || 0, a = (p = e.axis.getExtent())[0] > p[1] ? -1 : 1, a = ["start" === h ? p[0] - a * c : "end" === h ? p[1] + a * c : (p[0] + p[1]) / 2, Dx(h) ? t.labelOffset + u * c : 0], null != (c = e.get("nameRotate")) && (c = c * bx / 180), Dx(h) ? r = Sx.innerTextLayout(t.rotation, null != c ? c : t.rotation, u) : (u = t.rotation, h = h, p = p, c = Qr((c = c || 0) - u), u = p[0] > p[1], p = "start" === h && !u || "start" !== h && u, h = Jr(c - bx / 2) ? (d = p ? "bottom" : "top", "center") : Jr(c - 1.5 * bx) ? (d = p ? "top" : "bottom", "center") : (d = "middle", c < 1.5 * bx && bx / 2 < c ? p ? "left" : "right" : p ? "right" : "left"), r = { rotation: c, textAlign: h, textVerticalAlign: d }, null == (d = t.axisNameAvailableWidth) || (d = Math.abs(d / Math.sin(r.rotation)), isFinite(d)) || (d = null)), u = o.getFont(), c = (p = e.get("nameTruncate", !0) || {}).ellipsis, h = wt(t.nameTruncateMaxWidth, p.maxWidth, d), t = new ks({ x: a[0], y: a[1], rotation: r.rotation, silent: Sx.isLabelSilent(e), style: Yh(o, { text: f, font: u, overflow: "truncate", width: h, ellipsis: c, fill: o.getTextColor() || e.get(["axisLine", "lineStyle", "color"]), align: o.get("align") || r.textAlign, verticalAlign: o.get("verticalAlign") || r.textVerticalAlign }), z2: 1 }), a = (p = { el: t, componentModel: e, itemName: f }).itemTooltipOption, u = p.componentModel, h = p.itemName, a = H(a) ? { formatter: a } : a, c = u.mainType, u = u.componentIndex, (s = { componentType: c, name: h, $vars: ["name"] })[c + "Index"] = u, (l = p.formatterParamsExtra) && O(D(l), function (t) { Bt(s, t) || (s[t] = l[t], s.$vars.push(t)) }), (p = Fs(p.el)).componentMainType = c, p.componentIndex = u, p.tooltipConfig = { name: h, option: B({ content: h, formatterParams: s }, a) }, t.__fullText = f, t.anid = "name", e.get("triggerEvent") && ((o = Sx.makeAxisEventDataBase(e)).targetType = "axisName", o.name = f, Fs(t).eventData = o), i.add(t), t.updateTransform(), n.add(t), t.decomposeTransform()) } }; function Tx(t, e) { this.group = new zr, this.opt = e, this.axisModel = t, B(e, { labelOffset: 0, nameDirection: 1, tickDirection: 1, labelDirection: 1, silent: !0, handleAutoShown: function () { return !0 } }); t = new zr({ x: e.position[0], y: e.position[1], rotation: e.rotation }); t.updateTransform(), this._transformGroup = t } function Cx(t) { t && (t.ignore = !0) } function kx(t, e) { var n, i = t && t.getBoundingRect().clone(), r = e && e.getBoundingRect().clone(); if (i && r) return Ee(n = Pe([]), n, -t.rotation), i.applyTransform(Re([], n, t.getLocalTransform())), r.applyTransform(Re([], n, e.getLocalTransform())), i.intersect(r) } function Dx(t) { return "middle" === t || "center" === t } function Ix(t, e, n, i, r) { for (var o = [], a = [], s = [], l = 0; l < t.length; l++) { var u = t[l].coord, u = (a[0] = u, s[a[1] = 0] = u, s[1] = n, e && (ee(a, a, e), ee(s, s, e)), new Uu({ shape: { x1: a[0], y1: a[1], x2: s[0], y2: s[1] }, style: i, z2: 2, autoBatch: !0, silent: !0 })); zh(u.shape, u.style.lineWidth), u.anid = r + "_" + t[l].tickValue, o.push(u) } return o } function Ax(t) { var e = (t.ecModel.getComponent("axisPointer") || {}).coordSysAxesInfo; return e && e.axesInfo[t.type + "||" + t.id] } var Lx, Px = {}, $g = (u(Ox, Lx = eg), Ox.prototype.render = function (t, e, n, i) { var r, o, a, s, l, u; this.axisPointerClass && (r = Ax(r = t)) && (l = r.axisPointerModel, o = r.axis.scale, a = l.option, u = l.get("status"), null != (s = l.get("value")) && (s = o.parse(s)), l = !!l.get(["handle", "show"]), null == u && (a.status = l ? "show" : "hide"), (u = o.getExtent().slice())[0] > u[1] && u.reverse(), (s = null == s || s > u[1] ? u[1] : s) < u[0] && (s = u[0]), a.value = s, l) && (a.status = r.axis.scale.isBlank() ? "hide" : "show"), Lx.prototype.render.apply(this, arguments), this._doUpdateAxisPointerClass(t, n, !0) }, Ox.prototype.updateAxisPointer = function (t, e, n, i) { this._doUpdateAxisPointerClass(t, n, !1) }, Ox.prototype.remove = function (t, e) { var n = this._axisPointer; n && n.remove(e) }, Ox.prototype.dispose = function (t, e) { this._disposeAxisPointer(e), Lx.prototype.dispose.apply(this, arguments) }, Ox.prototype._doUpdateAxisPointerClass = function (t, e, n) { var i, r = Ox.getAxisPointerClass(this.axisPointerClass); r && ((i = (i = Ax(i = t)) && i.axisPointerModel) ? (this._axisPointer || (this._axisPointer = new r)).render(t, i, e, n) : this._disposeAxisPointer(e)) }, Ox.prototype._disposeAxisPointer = function (t) { this._axisPointer && this._axisPointer.dispose(t), this._axisPointer = null }, Ox.registerAxisPointerClass = function (t, e) { Px[t] = e }, Ox.getAxisPointerClass = function (t) { return t && Px[t] }, Ox.type = "axis", Ox); function Ox() { var t = null !== Lx && Lx.apply(this, arguments) || this; return t.type = Ox.type, t } var Rx = Mo(); var Nx, Ex, zx = ["axisLine", "axisTickLabel", "axisName"], Bx = ["splitArea", "splitLine", "minorSplitLine"], Ku = (u(Wx, Ex = $g), Wx.prototype.render = function (i, t, e, n) { this.group.removeAll(); var r, o, a, s, l, u, h, c, p, d, f, g, y, m, v, _ = this._axisGroup; function x(t) { var e = { x: t.x, y: t.y, rotation: t.rotation }; return null != t.shape && (e.shape = P({}, t.shape)), e } this._axisGroup = new zr, this.group.add(this._axisGroup), i.get("show") && (r = i.getCoordSysModel(), u = i, h = h || {}, l = (l = r).coordinateSystem, c = u.axis, p = {}, d = c.getAxesOnZeroOf()[0], f = c.position, g = d ? "onZero" : f, c = c.dim, l = [(l = l.getRect()).x, l.x + l.width, l.y, l.y + l.height], y = { left: 0, right: 1, top: 0, bottom: 1, onZero: 2 }, m = u.get("offset") || 0, m = "x" === c ? [l[2] - m, l[3] + m] : [l[0] - m, l[1] + m], d && (v = d.toGlobalCoord(d.dataToCoord(0)), m[y.onZero] = Math.max(Math.min(v, m[1]), m[0])), p.position = ["y" === c ? m[y[g]] : l[0], "x" === c ? m[y[g]] : l[3]], p.rotation = Math.PI / 2 * ("x" === c ? 0 : 1), p.labelDirection = p.tickDirection = p.nameDirection = { top: -1, bottom: 1, left: -1, right: 1 }[f], p.labelOffset = d ? m[y[f]] - m[y.onZero] : 0, u.get(["axisTick", "inside"]) && (p.tickDirection = -p.tickDirection), wt(h.labelInside, u.get(["axisLabel", "inside"])) && (p.labelDirection = -p.labelDirection), v = u.get(["axisLabel", "rotate"]), p.labelRotate = "top" === g ? -v : v, p.z2 = 1, l = new Sx(i, P({ handleAutoShown: function (t) { for (var e = r.coordinateSystem.getCartesians(), n = 0; n < e.length; n++)if (zm(e[n].getOtherAxis(i.axis).scale)) return !0; return !1 } }, p)), O(zx, l.add, l), this._axisGroup.add(l.getGroup()), O(Bx, function (t) { i.get([t, "show"]) && Fx[t](this, this._axisGroup, i, r) }, this), n && "changeAxisOrder" === n.type && n.isInitSort || (c = _, d = this._axisGroup, o = i, c && d && (a = {}, c.traverse(function (t) { Bh(t) && t.anid && (a[t.anid] = t) }), s = a, d.traverse(function (t) { var e, n; Bh(t) && t.anid && (e = s[t.anid]) && (n = x(t), t.attr(x(e)), Sh(t, n, o, Fs(t).dataIndex)) }))), Ex.prototype.render.call(this, i, t, e, n)) }, Wx.prototype.remove = function () { Rx(this).splitAreaColors = null }, Wx.type = "cartesianAxis", Wx), Fx = { splitLine: function (t, e, n, i) { var r = n.axis; if (!r.scale.isBlank()) for (var n = n.getModel("splitLine"), o = n.getModel("lineStyle"), a = V(a = o.get("color")) ? a : [a], s = i.coordinateSystem.getRect(), l = r.isHorizontal(), u = 0, h = r.getTicksCoords({ tickModel: n }), c = [], p = [], d = o.getLineStyle(), f = 0; f < h.length; f++) { var g = r.toGlobalCoord(h[f].coord), g = (l ? (c[0] = g, c[1] = s.y, p[0] = g, p[1] = s.y + s.height) : (c[0] = s.x, c[1] = g, p[0] = s.x + s.width, p[1] = g), u++ % a.length), y = h[f].tickValue, y = new Uu({ anid: null != y ? "line_" + h[f].tickValue : null, autoBatch: !0, shape: { x1: c[0], y1: c[1], x2: p[0], y2: p[1] }, style: B({ stroke: a[g] }, d), silent: !0 }); zh(y.shape, d.lineWidth), e.add(y) } }, minorSplitLine: function (t, e, n, i) { var r = n.axis, n = n.getModel("minorSplitLine").getModel("lineStyle"), o = i.coordinateSystem.getRect(), a = r.isHorizontal(), s = r.getMinorTicksCoords(); if (s.length) for (var l = [], u = [], h = n.getLineStyle(), c = 0; c < s.length; c++)for (var p = 0; p < s[c].length; p++) { var d = r.toGlobalCoord(s[c][p].coord), d = (a ? (l[0] = d, l[1] = o.y, u[0] = d, u[1] = o.y + o.height) : (l[0] = o.x, l[1] = d, u[0] = o.x + o.width, u[1] = d), new Uu({ anid: "minor_line_" + s[c][p].tickValue, autoBatch: !0, shape: { x1: l[0], y1: l[1], x2: u[0], y2: u[1] }, style: h, silent: !0 })); zh(d.shape, h.lineWidth), e.add(d) } }, splitArea: function (t, e, n, i) { var r = e, e = i, o = (i = n).axis; if (!o.scale.isBlank()) { var i = i.getModel("splitArea"), n = i.getModel("areaStyle"), a = n.get("color"), s = e.coordinateSystem.getRect(), l = o.getTicksCoords({ tickModel: i, clamp: !0 }); if (l.length) { var u = a.length, h = Rx(t).splitAreaColors, c = E(), p = 0; if (h) for (var d = 0; d < l.length; d++) { var f = h.get(l[d].tickValue); if (null != f) { p = (f + (u - 1) * d) % u; break } } for (var g = o.toGlobalCoord(l[0].coord), y = n.getAreaStyle(), a = V(a) ? a : [a], d = 1; d < l.length; d++) { var m = o.toGlobalCoord(l[d].coord), v = void 0, _ = void 0, x = void 0, w = void 0, g = o.isHorizontal() ? (v = g, _ = s.y, w = s.height, v + (x = m - v)) : (v = s.x, _ = g, x = s.width, _ + (w = m - _)), m = l[d - 1].tickValue; null != m && c.set(m, p), r.add(new bs({ anid: null != m ? "area_" + m : null, shape: { x: v, y: _, width: x, height: w }, style: B({ fill: a[p] }, y), autoBatch: !0, silent: !0 })), p = (p + 1) % u } Rx(t).splitAreaColors = c } } } }, Vx = (u(Hx, Nx = Ku), Hx.type = "xAxis", Hx); function Hx() { var t = null !== Nx && Nx.apply(this, arguments) || this; return t.type = Hx.type, t } function Wx() { var t = null !== Ex && Ex.apply(this, arguments) || this; return t.type = Wx.type, t.axisPointerClass = "CartesianAxisPointer", t } u(Xx, Gx = Ku), Xx.type = "yAxis"; var Gx, Ux = Xx; function Xx() { var t = null !== Gx && Gx.apply(this, arguments) || this; return t.type = Vx.type, t } u(jx, Yx = eg), jx.prototype.render = function (t, e) { this.group.removeAll(), t.get("show") && this.group.add(new bs({ shape: t.coordinateSystem.getRect(), style: B({ fill: t.get("backgroundColor") }, t.getItemStyle()), silent: !0, z2: -1 })) }, jx.type = "grid"; var Yx, qx = jx, Zx = { offset: 0 }; function jx() { var t = null !== Yx && Yx.apply(this, arguments) || this; return t.type = "grid", t } zv(function (t) { t.registerComponentView(qx), t.registerComponentModel(j1), t.registerCoordinateSystem("cartesian2d", yx), nx(t, "x", Q1, Zx), nx(t, "y", Q1, Zx), t.registerComponentView(Vx), t.registerComponentView(Ux), t.registerPreprocessor(function (t) { t.xAxis && t.yAxis && !t.grid && (t.grid = {}) }) }), zv(n1); var Kx = { value: "eq", "<": "lt", "<=": "lte", ">": "gt", ">=": "gte", "=": "eq", "!=": "ne", "<>": "ne" }, $x = (lw.prototype.evaluate = function (t) { var e = typeof t; return H(e) ? this._condVal.test(t) : !!dt(e) && this._condVal.test(t + "") }, lw), Qx = (sw.prototype.evaluate = function () { return this.value }, sw), Jx = (aw.prototype.evaluate = function () { for (var t = this.children, e = 0; e < t.length; e++)if (!t[e].evaluate()) return !1; return !0 }, aw), tw = (ow.prototype.evaluate = function () { for (var t = this.children, e = 0; e < t.length; e++)if (t[e].evaluate()) return !0; return !1 }, ow), ew = (rw.prototype.evaluate = function () { return !this.child.evaluate() }, rw), nw = (iw.prototype.evaluate = function () { for (var t = !!this.valueParser, e = (0, this.getValue)(this.valueGetterParam), n = t ? this.valueParser(e) : null, i = 0; i < this.subCondList.length; i++)if (!this.subCondList[i].evaluate(t ? n : e)) return !1; return !0 }, iw); function iw() { } function rw() { } function ow() { } function aw() { } function sw() { } function lw(t) { null == (this._condVal = H(t) ? new RegExp(t) : _t(t) ? t : null) && f("") } function uw(t, e) { var n; if (!0 === t || !1 === t) return (n = new Qx).value = t, n; { if (cw(t) || f(""), t.and) return hw("and", t, e); if (t.or) return hw("or", t, e); if (t.not) n = e, cw(o = (o = t).not) || f(""), (l = new ew).child = uw(o, n), l.child || f(""); else { for (var i = t, r = e, o = r.prepareGetValue(i), a = [], s = D(i), l = i.parser, u = l ? hf(l) : null, h = 0; h < s.length; h++) { var c, p = s[h]; "parser" === p || r.valueGetterAttrMap.get(p) || (c = Bt(Kx, p) ? Kx[p] : p, p = i[p], p = u ? u(p) : p, (c = function (t, e) { return "eq" === t || "ne" === t ? new yf("eq" === t, e) : Bt(cf, t) ? new pf(t, e) : null }(c, p) || "reg" === c && new $x(p)) || f(""), a.push(c)) } a.length || f(""), (l = new nw).valueGetterParam = o, l.valueParser = u, l.getValue = r.getValue, l.subCondList = a } return l } } function hw(t, e, n) { e = e[t], V(e) || f(""), e.length || f(""), t = new ("and" === t ? Jx : tw); return t.children = F(e, function (t) { return uw(t, n) }), t.children.length || f(""), t } function cw(t) { return R(t) && !st(t) } dw.prototype.evaluate = function () { return this._cond.evaluate() }; var pw = dw; function dw(t, e) { this._cond = uw(t, e) } var fw = { type: "echarts:filter", transform: function (t) { for (var e, n, i = t.upstream, r = (t = t.config, n = { valueGetterAttrMap: E({ dimension: !0 }), prepareGetValue: function (t) { var e = t.dimension, t = (Bt(t, "dimension") || f(""), i.getDimensionInfo(e)); return t || f(""), { dimIdx: t.index } }, getValue: function (t) { return i.retrieveValueFromItem(e, t.dimIdx) } }, new pw(t, n)), o = [], a = 0, s = i.count(); a < s; a++)e = i.getRawDataItem(a), r.evaluate() && o.push(e); return { data: o } } }, gw = { type: "echarts:sort", transform: function (t) { var a = t.upstream, t = t.config, t = co(t), s = (t.length || f(""), []), t = (O(t, function (t) { var e = t.dimension, n = t.order, i = t.parser, t = t.incomparable, e = (null == e && f(""), "asc" !== n && "desc" !== n && f(""), t && "min" !== t && "max" !== t && f(""), "asc" !== n && "desc" !== n && f(""), a.getDimensionInfo(e)), r = (e || f(""), i ? hf(i) : null); i && !r && f(""), s.push({ dimIdx: e.index, parser: r, comparator: new df(n, t) }) }), a.sourceFormat); t !== wp && t !== bp && f(""); for (var e = [], n = 0, i = a.count(); n < i; n++)e.push(a.getRawDataItem(n)); return e.sort(function (t, e) { for (var n = 0; n < s.length; n++) { var i = s[n], r = a.retrieveValueFromItem(t, i.dimIdx), o = a.retrieveValueFromItem(e, i.dimIdx), i = (i.parser && (r = i.parser(r), o = i.parser(o)), i.comparator.evaluate(r, o)); if (0 !== i) return i } return 0 }), { data: e } } }; zv(function (t) { t.registerTransform(fw), t.registerTransform(gw) }), t.Axis = hc, t.ChartView = ag, t.ComponentModel = g, t.ComponentView = eg, t.List = bm, t.Model = dc, t.PRIORITY = jg, t.SeriesModel = qf, t.color = xi, t.connect = function (e) { var t; return V(e) && (t = e, e = null, O(t, function (t) { null != t.group && (e = t.group) }), e = e || "g_" + I0++, O(t, function (t) { t.group = e })), k0[e] = !0, e }, t.dataTool = {}, t.dependencies = { zrender: "5.4.4" }, t.disConnect = Zg, t.disconnect = L0, t.dispose = function (t) { H(t) ? t = C0[t] : t instanceof p0 || (t = P0(t)), t instanceof p0 && !t.isDisposed() && t.dispose() }, t.env = p, t.extendChartView = function (t) { return t = ag.extend(t), ag.registerClass(t), t }, t.extendComponentModel = function (t) { return t = g.extend(t), g.registerClass(t), t }, t.extendComponentView = function (t) { return t = eg.extend(t), eg.registerClass(t), t }, t.extendSeriesModel = function (t) { return t = qf.extend(t), qf.registerClass(t), t }, t.format = lc, t.getCoordinateSystemDimensions = function (t) { if (t = jp.get(t)) return t.getDimensionsInfo ? t.getDimensionsInfo() : t.dimensions.slice() }, t.getInstanceByDom = P0, t.getInstanceById = function (t) { return C0[t] }, t.getMap = function (t) { var e = Ny.getMap; return e && e(t) }, t.graphic = Ic, t.helper = Kg, t.init = function (t, e, n) { var i = !(n && n.ssr); if (i) { var r = P0(t); if (r) return r } return (r = new p0(t, e, n)).id = "ec_" + D0++, C0[r.id] = r, i && Ao(t, A0, r.id), o0(r), Ry.trigger("afterinit", r), r }, t.innerDrawElementOnCanvas = ky, t.matrix = Fe, t.number = Uo, t.parseGeoJSON = t_, t.parseGeoJson = t_, t.registerAction = F0, t.registerCoordinateSystem = V0, t.registerLayout = H0, t.registerLoading = X0, t.registerLocale = Sc, t.registerMap = Y0, t.registerPostInit = E0, t.registerPostUpdate = z0, t.registerPreprocessor = R0, t.registerProcessor = N0, t.registerTheme = O0, t.registerTransform = q0, t.registerUpdateLifecycle = B0, t.registerVisual = W0, t.setCanvasCreator = function (t) { A({ createCanvas: t }) }, t.setPlatformAPI = A, t.throttle = dg, t.time = nc, t.use = zv, t.util = rc, t.vector = oe, t.version = "5.4.3", t.zrUtil = Ht, t.zrender = Ur });
  </script>


  <script type="text/javascript">
    var dom = document.getElementById('container');
    var myChart = echarts.init(dom, null, {
      renderer: 'canvas',
      useDirtyRect: false
    });
    var app = {};

    var option;


    option = {
      color: ['#2DDB89'],
      backgroundColor: '#031845',
      tooltip: {
        trigger: 'axis',
        axisPointer: { // 坐标轴指示器，坐标轴触发有效
          type: 'shadow' // 默认为直线，可选为：'line' | 'shadow'
        }
      },
      grid: {
        left: '3%',
        right: '4%',
        bottom: '3%',
        containLabel: true
      },
      xAxis: [{
        type: 'category',
        data:  ['8:00','8:00','8:00','8:00','8:00','8:00','8:00','8:00','8:00','8:00',],
        axisTick: {
          alignWithLabel: true
        },
        axisLabel: {
          color: '#2DDB89'
        },
        splitLine: {
          show: true,
          lineStyle: {
            color: '#2DDB89',
            width: 0.5
          }
        },
        axisLine: {
          lineStyle: {
            color: '#2DDB89'
          }
        }
      }],
      yAxis: [{
        type: 'value',
        min: 60,
        max: 100,
        axisLabel: {
          color: '#fff'
        },
        splitLine: {
          show: true,
          lineStyle: {
            color: '#2DDB89',
            width: 0.5
          }
        },
        axisLine: {
          lineStyle: {
            color: '#2DDB89'
          }
        },
        axisTick: {
          show: false
        }
      }],
      series: [{
        name: '直接访问',
        data: [20,20,20,20,20,20,20,20,20,20,],
        type: 'line'
      }]
    };

    if (option && typeof option === 'object') {
      myChart.setOption(option);
    }

    window.addEventListener('resize', myChart.resize);


    function setOption_data(num) {
      num = parseInt(num);
      var data = [];
      for (var i = 0; i < num; i++) {
        data.push(Math.round(Math.random() * 200));
      }
      myChart.setOption({
        xAxis: {
          data: ['8:00','8:00','8:00','8:00','8:00','8:00','8:00','8:00','8:00','8:00',]
        },
        series: [{
          data: [20,20,20,20,20,20,20,20,20,20,],
        }]
      });
    }

    function push_data(data_int) {
      var data = myChart.getOption().series[0].data;
      data.push(parseInt(data_int));
      data.shift();
      var date=myChart.getOption().xAxis[0].data;
      date.push((new Date()).toLocaleTimeString());
      date.shift();

      myChart.setOption({
        xAxis: {
          data: date
        },
        series: [{
          data: data
        }]
      });
    }

    function clean_data() {
      var data = [];
      myChart.setOption({
        series: [{
          data: [20,20,20,20,20,20,20,20,20,20,],
        }]
      });
    }





  </script>
</body>

</html>